【问题标题】:Why is the boolean undefined?为什么布尔值未定义?
【发布时间】:2012-04-28 17:10:36
【问题描述】:

在 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 是 undefeind?

谢谢。

【问题讨论】:

    标签: javascript undefined undefined-reference


    【解决方案1】:

    您需要添加 this 来引用该对象:

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

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

    这是一篇关于 this http://www.quirksmode.org/js/this.html 的精彩文章。

    【讨论】:

      【解决方案2】:

      myBoo 是对象的一个​​属性,因此您必须参考对象本身来访问它。

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 2015-12-16
            • 2011-01-29
            • 1970-01-01
            • 2019-07-23
            • 2018-02-22
            • 2022-11-27
            • 2020-08-18
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多