javascript - Dojo 1.6 hitch() "this"范围在 require 语句中

标签 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());
    }

创建此输出

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

所需的输出必须是对象的 2 倍。我以为我理解 Hook 机制,但是通过调用 lang.hitch(this, fun());在我看来,“this”是 [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());

关于javascript - Dojo 1.6 hitch() "this"范围在 require 语句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14263533/

相关文章:

javascript - 除非调整浏览器窗口的大小,否则 dojo 小部件不会呈现

javascript - AngularJS:如何在通过 $http 获取数据时禁用默认观察者

javascript - 将匿名函数传递给具有局部变量的命名函数时,Javascript 中的范围问题

javascript - 将 jQuery 添加到 wordpress 页面以显示时间/日期选择器

javascript - Angular 2 单击事件未在移动设备/平板电脑上的下拉按钮项目上触发

javascript - 如何在 Dojo 中管理 ajax 响应

java - 为什么我的一个类的自定义成员变量在其他类中没有更新?

javascript - jQuery Div 属性(宽度 = $('#immagineCont').attr ('clientWidth'); =未定义

javascript - 如何将数据从 Ajax 弹出窗口传递到父页面?

css - 如何在 xpages 中更改 dojo 货币文本框的特征?