2014-10-03 109 views
0

試圖理解爲什麼每個JavaScript對象都有一個構造函數屬性。爲什麼每個javascript對象都有構造函數屬性?

是否有任何使用構造函數屬性,因爲對象已經創建?

var MyFunc = function (name){this.name=name} 

var instance = new MyFunc("myclass"); 

現在實例有一個構造函數屬性,它具有對MyFunc本身的引用。什麼是具有實例的構造函數屬性的用法?

回答

0

這是回答您的問題嗎?

var dog1= {"a":1} 

function Dog() 
{ 

} 


dog2= new Dog(); 

console.log(dog1.constructor) //function Object() { [native code]... 
console.log(dog2.constructor) //function Dog()... 

有時你需要知道對象是如何創建的。 (更不用說原型是一個constructor屬性)

+0

我們可以使用instanceof? – 2014-10-03 12:27:33

+0

@GauravSingla http://stackoverflow.com/questions/18172902/difference-between-instanceof-and-constructor-property – 2014-10-03 12:28:55

+0

我明白不同之處。仍然爲什麼需要構造函數屬性。我們真的需要比較構造函數嗎? – 2014-10-03 12:33:33

1

這是(多)複雜多了:沒有對象,在,JS有一個constructor屬性默認,但它們的原型(如果該對象已具雛形)有一個。

此外,請注意:constructor引用了一個函數,但此原型屬性不是隻讀的,因此可以輕鬆更改屬性,因此不要依賴它。

相關問題