这是javascript构造函数的一部分

这是javascript构造函数的一部分,javascript,constructor,Javascript,Constructor,foo是一个构造函数,为什么“foo”中的这一点不等于“a”。当您在构造函数中时,变量a的赋值尚未发生。事件的顺序是: 创建一个新对象 运行构造函数 将新对象分配给变量a 当您在构造函数中时,变量a的赋值尚未发生。事件的顺序是: 创建一个新对象 运行构造函数 将新对象分配给变量a 我认为“this”指的是一个对象,但是“this.a”是正确的,因为它是对象我认为“this”指的是一个对象,但是“this.a”是正确的,因为它是对象这里没有this.a。所以我真的不明白你想说什么。在我看来,就像r

foo是一个构造函数,为什么“foo”中的这一点不等于“a”。

当您在构造函数中时,变量
a
的赋值尚未发生。事件的顺序是:

  • 创建一个新对象
  • 运行构造函数
  • 将新对象分配给变量
    a

  • 当您在构造函数中时,变量
    a
    的赋值尚未发生。事件的顺序是:

  • 创建一个新对象
  • 运行构造函数
  • 将新对象分配给变量
    a

  • 我认为“this”指的是一个对象,但是“this.a”是正确的,因为它是对象

    我认为“this”指的是一个对象,但是“this.a”是正确的,因为它是对象

    这里没有
    this.a
    。所以我真的不明白你想说什么。在我看来,就像ray试图检查“a”上的相等性一样,因为“this”是一个对象的对象,这里没有
    this.a
    。所以我真的不明白你想说什么。在我看来,这就像ray试图检查“a”上的相等性一样,因为“this”是objects@KooiInc警报为真?我在firebug中运行代码,它警报为假。@ray:在任何浏览器中运行我在上一条评论中给出的代码字符串。我的代码字符串与您的不同-警报(此*.name*==a)@KooiInc-代码提醒
    true
    的唯一原因是
    this.name
    a
    都是
    未定义的
    。这并没有起到任何作用。@KooiInc警报为真?我在firebug中运行代码,它警报为假。@ray:在任何浏览器中运行我在上一次评论中给出的代码字符串。我的代码字符串与您的不同-警报(此*.name*==a)@KooiInc-代码提醒
    true
    的唯一原因是
    this.name
    a
    都是
    未定义的
    。这并没有完成任何事情。
    
    function Foo() {  
        alert(this === a);//return false!   **why this is not equal a?**  
    }  
    var a = new Foo();//create a new object