2012-06-04 79 views
1

我需要从功能enableNav访问buttons财产,但我的问题是,我不能因为this参考点到enableNav函数,而不是对象本身,如何正确获取buttons变量范围对象

(function() { 

var MyCustomObject = { 

    init: function(config) { 
     this.myvar = config.myvar; 
     this.buttons = config.buttons; 
     this.enableNav(); 
    }, 

    enableNav: function() { 
     // need to use buttons here!! 
    } 

}; 

MyCustomObject.init({ 
    myVar: 3, 
    buttons: $('button') 
}); 
})(); 
+1

这只是不是真的:http://jsfiddle.net/KQfj9/ ...也许你需要在准备'$来包装这个(函数(){});' ? – mVChr

回答

0

this参考点到enableNav功能

不,它不需要。

你在这里把它叫做:

this.enableNav(); 

所以里面enableNavthisthis有该行的任何值。

(因为,假设new不被使用,当你调用foo.bar.baz()然后baz得到bar其的this谷)。

这样:

enableNav: function() { 
    this.buttons.append(foo); // or whatever 
}