躍然一笑
2018-08-10 10:09:12
function tom(){this.age = "15";
}var tom = new Object;
tom.age = "15";function是對象,new object也是,上述兩個代碼是不是等價的?另外,他們與下面這段代碼中的x的關(guān)系是什么? 謝謝function tom(){this.age = "15";
}var x = new Object();
1 回答

收到一只叮咚
TA貢獻1821條經(jīng)驗 獲得超5個贊
首先,你定義的function tom(){this.age = "15";}
(建議寫成function Tom(){this.age = "15";}
)是一個構(gòu)造器,可以看成是自定義的一個類,及Tom這個類。由Tom()創(chuàng)建出的對象中存在一個屬性constructor指向這個構(gòu)造器。
而后創(chuàng)建的tom對象var tom = new Object();
其是由Object這個類創(chuàng)建的,所以兩種創(chuàng)建方式創(chuàng)建出來的新對象類型是不一樣的,而且由Object創(chuàng)建出的對象擴展性沒有自定義構(gòu)造器創(chuàng)建的對象好。
具體的你可以參考《javascript高級程序設(shè)計》有關(guān)繼承和構(gòu)造器相關(guān)的章節(jié);
最后,var tom = new Object;
這樣寫是錯的,應(yīng)該這樣寫才是調(diào)用var tom = new Object();
這里的tom和你最后定義的x是一回事只不過儲存的變量不同而且等同于var x = {}
添加回答
舉報
0/150
提交
取消