0

これらの関数のいくつかに簡単に使用できる 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;
    }
});
4

1 に答える 1

0

コードが何をするのか完全にはわかりませんが、説明によって、を検索しています$.proxy。コールバックを特定のコンテキストにバインドします。アンダースコアを使用している場合は、_.bind

ドキュメント:http ://api.jquery.com/jQuery.proxy/

于 2012-03-12T10:35:01.203 に答える