Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Dojo 1.6挂接装置()的范围;这";在require语句内_Javascript_Dojo_Scope_Require_Execution - Fatal编程技术网

Javascript Dojo 1.6挂接装置()的范围;这";在require语句内

Javascript Dojo 1.6挂接装置()的范围;这";在require语句内,javascript,dojo,scope,require,execution,Javascript,Dojo,Scope,Require,Execution,我的dojo应用程序出现了一个奇怪的问题。它只是关于范围和对象本身的连接。下面的代码 function(data) { console.info(this); // [I] var fun = require(["dojo/Deferred"], function(Deferred) { console.info(this); // [II] }); lang.hitch(this, fun());

我的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]打印的对象

我希望你们能帮忙


提前谢谢

您要做的是限制回调函数的范围:

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())