これらの関数のいくつかに簡単に使用できる API を作成したいのですが、関数を新しいスコープ IE にバインドすることはできません。クレイジーな eval ナンセンス以外の方法や、これを使ってクレイジーなことをする方法がわかりません。これにより、物事がはるかに混乱します。
フィルターパラメーターは完了コールバックのコンテキストで実行する必要があるため、概念的には気が狂っています。それは私の問題だと思いますが、フィルターパラメーターはコールバックではなく、パラメーターであり、定義されている場所ではなく、実行されている場所のスコープを持つ必要があります。
ばかげた何かが欠けているだけだと誰かが教えてください。
ラムダのスコープを定義された場所ではなく、呼び出された場所にバインドすることをサポートする言語はありますか?
var scrape = function(selector, filter) {
jsdom.env({
html: data,
src: [ jQuery ],
done: function(errors, window) {
var $ = window.$;
eval('filter=' + filter.toString());
debugger;
var entries = $(selector).filter(filter);
console.log('spo');
debugger;
}
});
};
scrape('p',function(index) {
debugger;
if(this.children.length == 3) {
return $(this.children[0]).is('a') &&
$(this.children[1]).is('font') &&
$(this.children[2]).is('span');
} else {
return false;
}
});