这在javascript构造函数中

时间:2011-10-12 08:32:58

标签: javascript constructor

function Foo() {  
    alert(this === a);//return false!   **why this is not equal a?**  
}  
var a = new Foo();//create a new object

foo是一个构造函数,为什么'Foo'中的这个与'a'不相等。

2 个答案:

答案 0 :(得分:6)

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

  1. 创建新对象
  2. 运行构造函数
  3. 将新对象分配给变量a

答案 1 :(得分:-1)

我认为“this”指的是一个对象,但“this.a”是真的,因为那是对象