2016-06-22 20 views
1

鑑於函數A)新的A(之間的任何差異,給定一個功能的,有沒有VS新A

function A() 
{ 
    .... 
    console.log(1); 
    this.a = 1; 
} 

如果我

var b = new A(); 

則b繼承A的性質,並且

b.a == 1; //true 

但如果我這樣做

var c = new A; 

那麼C繼承再次A的屬性,

c.a == 1; //true 

new A() VS new A之間有什麼區別?

+2

不,他們是一樣的。即使你沒有編寫調用parens,new也會調用這個函數。 – dandavis

+0

@dandavis謝謝,請您指出我提到的這個規範嗎? – gurvinder372

+0

「javascript構造函數括號」 - > [new MyObject(); vs new MyObject;](http://stackoverflow.com/questions/3034941/new-myobject-vs-new-myobject) – GolezTrol

回答

1

new operatornew constructor[([arguments])]):

new Foo相當於new Foo(),即如果 沒有指定參數列表,foo是不帶參數調用

+1

謝謝,不知何故''''後'構造函數:) :) – gurvinder372

1

當你調用new A(); 你實際上調用一個空的構造函數來初始化在運行tym期間爲你自動創建的值... 那麼除非你沒有任何參數傳遞沒有差異。由於兩者都在內部調用空構造函數。