試圖理解爲什麼每個JavaScript對象都有一個構造函數屬性。爲什麼每個javascript對象都有構造函數屬性?
是否有任何使用構造函數屬性,因爲對象已經創建?
var MyFunc = function (name){this.name=name}
var instance = new MyFunc("myclass");
現在實例有一個構造函數屬性,它具有對MyFunc本身的引用。什麼是具有實例的構造函數屬性的用法?
試圖理解爲什麼每個JavaScript對象都有一個構造函數屬性。爲什麼每個javascript對象都有構造函數屬性?
是否有任何使用構造函數屬性,因爲對象已經創建?
var MyFunc = function (name){this.name=name}
var instance = new MyFunc("myclass");
現在實例有一個構造函數屬性,它具有對MyFunc本身的引用。什麼是具有實例的構造函數屬性的用法?
這是回答您的問題嗎?
var dog1= {"a":1}
function Dog()
{
}
dog2= new Dog();
console.log(dog1.constructor) //function Object() { [native code]...
console.log(dog2.constructor) //function Dog()...
有時你需要知道對象是如何創建的。 (更不用說原型是一個constructor屬性)
這是(多)複雜多了:沒有對象,在,JS有一個constructor
屬性默認,但它們的原型(如果該對象已具雛形)有一個。
此外,請注意:constructor
引用了一個函數,但此原型屬性不是隻讀的,因此可以輕鬆更改屬性,因此不要依賴它。
我們可以使用instanceof? – 2014-10-03 12:27:33
@GauravSingla http://stackoverflow.com/questions/18172902/difference-between-instanceof-and-constructor-property – 2014-10-03 12:28:55
我明白不同之處。仍然爲什麼需要構造函數屬性。我們真的需要比較構造函數嗎? – 2014-10-03 12:33:33