1

dojoアプリで奇妙な問題が発生しました。それは単にスコープとオブジェクト自体のヒッチングに関するものです。次のコード

function(data) {
        console.info(this); // [I]
        var fun = require(["dojo/Deferred"], function(Deferred) {
            console.info(this); // [II]
        });

        lang.hitch(this, fun());
    }

この出力を作成します

Object{...} // from [I]
Window index.php [II]

必要な出力は、オブジェクトの2倍である必要があります。ヒッチメカニズムは理解できたと思いましたが、lang.hitch(this、fun());を呼び出すことで。「これ」は[I]によって印刷されたオブジェクトであるように私には思えます。

私はあなたたちが助けることができることを願っています!

前もって感謝します!

4

1 に答える 1

3

あなたがしたいのは、コールバック関数のスコープをヒッチすることです:

function(data) {
        console.info(this); // [I]
        var fun = require(["dojo/Deferred"], lang.hitch(this,function(Deferred) {
            console.info(this); // [II]
        }));
}

評価後にrequire関数の戻り結果にヒッチハイクするのではなくlang.hitch(this, fun());

于 2013-01-10T17:30:38.330 に答える