为什么boolean未定义?

问题描述:

在javascript中我做的:为什么boolean未定义?

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 

为什么myBoo从myMethod的角度来看undefeind?

谢谢。

这是因为myBoo没有被定义为一个全局变量,而是作为一个对象的属性。因此在myMethod函数访问它的正确方法是:

console.log("my method: "+ this.myBoo); 

您需要添加这个来指代对象:

myMethod: function() { 
    console.log("my method: "+ this.myBoo); 
} 

这里有一个小提琴:http://jsfiddle.net/9xB83/

这里有一个伟大的文章有关这个http://www.quirksmode.org/js/this.html

myBoo是对象的一个​​属性,因此您必须通过引用对象本身来访问它。

应该this.myBoo在myMethod的功能()

你的函数“myMethod的”正试图访问本地变量myBoo这不会在功能方面存在!你的意思是使用this.myBoo。