2011-10-12 197 views
0
function Foo() { 
    alert(this === a);//return false! **why this is not equal a?** 
} 
var a = new Foo();//create a new object 

foo是一個構造函數,爲什麼這個在'Foo'中與'a'不相等。this in javascript構造函數

回答

6

當您在構造函數中時,對變量a的賦值尚未發生。事件的順序是:

  1. 創建一個新的對象
  2. 運行構造
  3. 分配新對象變量a
+0

很好的解釋jfriend00 – david

+0

@大衛好的,非常感謝。 – ray

+0

@KooiInc提醒真實?我在螢火蟲中運行代碼,它提醒虛假。 – ray

-1

我認爲「這」指的是作爲一個對象,但「this.a」是真實的,因爲這是對象

+0

這裏沒有'this.a'。所以我真的不明白你想說什麼。 – cHao

+0

好吧,它在我看來是因爲射線試圖檢查「a」上的平等,因爲「this」是對象的對象 – david