“的奇数值”;这";在javascript中

“的奇数值”;这";在javascript中,javascript,dojo,this,Javascript,Dojo,This,在下面的代码中,根据firebug,这将作为值[function()]获取,而不是define返回的对象 define([“dojo/dom”, “dojo/dom构造”, ......., “dojo/domReady!”], 函数(dom, 建设,, ........){ 返回{ 函数(attr){ if(attr.many){ 返回attr.peek.length==0; }否则{ 返回!attr.peek; } }, ................ 添加按钮:函数(属性){

在下面的代码中,根据firebug,这将作为值[function()]获取,而不是define返回的对象


define([“dojo/dom”,
“dojo/dom构造”,
......., 
“dojo/domReady!”],
函数(dom,
建设,,
........){ 
返回{
函数(attr){
if(attr.many){
返回attr.peek.length==0;
}否则{
返回!attr.peek;
} 
}, 
................ 
添加按钮:函数(属性){
console.log(this);用于定义类:

define(["dojo/_base/declare",
        "dojo/dom", 
        "dojo/dom-construct", 
            ......., 
        "dojo/domReady!"], 

function(declare,
         dom, 
         construct, 
         ........){ 

    return declare([], {
        is_empty_attr: function(attr){ 
            ...
        },
        add_button: function(attr){
            ...
        }
    });
}); 

这将有助于查看调用
add_按钮
的位置示例,因为JavaScript中的
this
在方法调用时是绑定的。我将在中编辑更多信息。谢谢,这是否限制了对所有模块的“this”引用(非嵌套/非回调)模块中的函数?不一定。您可以使用dojo/_base/lang包中的lang.hitch来更改任何函数的执行范围。请参阅
define(["dojo/_base/declare",
        "dojo/dom", 
        "dojo/dom-construct", 
            ......., 
        "dojo/domReady!"], 

function(declare,
         dom, 
         construct, 
         ........){ 

    return declare([], {
        is_empty_attr: function(attr){ 
            ...
        },
        add_button: function(attr){
            ...
        }
    });
});