自定义对象中的变量范围
Variable scope in a custom object
我需要从函数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')
});
})();
this
参考指向enableNav
函数
不,它没有。
你在这里称之为:
this.enableNav();
所以在enableNav
内部,this
将是this
在那条线上的任何价值。
(因为,假设没有使用new
,当你调用foo.bar.baz()
时,baz
会因其this
谷而bar
)。
所以:
enableNav: function() {
this.buttons.append(foo); // or whatever
}
相关文章:
- js命名空间和变量范围
- 如何确保变量范围在这个循环中得到维护
- 在两个浏览器选项卡之间共享变量范围
- 文件API中的Javascript变量范围
- javascript和jQuery的嵌套对象函数中的变量范围
- JavaScript 函数变量范围问题
- JavaScript 中变量范围的问题
- Javascript - 揭示对象和变量范围
- 主干.js(具有 Require.js)变量/范围访问问题
- Javascript 变量范围未定义
- 如何绕过javascript变量范围
- IE 8变量范围错误
- 了解 Javascript 变量范围
- 控制变量范围
- 函数之间的Javascript变量范围问题
- 这种减少if语句中声明的变量范围的模式是一种好的做法吗
- 用于未初始化的局部变量的javascript变量范围
- 变量范围
- 请求节点模块变量范围
- Javascript 和 JQuery dom 全局变量范围