在javascript中我做:
var myObject = {
myBoo: false,
myMethod: function () {
console.log("my method: "+ myBoo);
}
}
console.log("myObject.myBoo=" + myObject.myBoo);
myObject.myMethod();
输出:
myObject.myBoo=false
ReferenceError: myBoo is not defined
为什么myMoo从myMethod的角度来看是不可取的?
感谢。
答案 0 :(得分:3)
这是因为myBoo未定义为全局变量,而是定义为对象属性。因此,在myMethod
函数中访问它的正确方法是:
console.log("my method: "+ this.myBoo);
答案 1 :(得分:2)
您需要添加 this 来引用该对象:
myMethod: function () {
console.log("my method: "+ this.myBoo);
}
这是一个小提琴:http://jsfiddle.net/9xB83/
以下是关于此 http://www.quirksmode.org/js/this.html的精彩文章。
答案 2 :(得分:1)
myBoo是对象的属性,因此您必须在引用对象本身时访问它。
它应该是myMethod函数中的this.myBoo()
答案 3 :(得分:1)
您的函数“myMethod”正在尝试访问函数上下文中不存在的局部变量myBoo!你打算做的是使用this.myBoo。