繁体   English   中英

为什么布尔值未定义?

[英]Why is the boolean undefined?

在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

从myMethod的角度来看,为什么myBoo无法确定?

谢谢。

这是因为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是对象的属性,因此您必须参考对象本身来访问它。

它应该是myMethod函数中的this.myBoo()

您的函数“ myMethod”正在尝试访问在函数上下文中不存在的局部变量myBoo! 您的意思是使用this.myBoo。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM