定義JavaScript 原型:探索兩種語法及其影響
在JavaScript 中,定義原型提供了一種向物件添加行為的便捷方法。原型定義有兩種常見語法,它們可能存在功能差異。
選項 1:擴充現有原型
Person.prototype.sayName = function(name) { alert(name); }
此語法擴充現有原型物件具有新屬性 (sayName) 和指派給它的函式。在此定義之前實例化的物件可以繼承新方法。
選項二:覆蓋原型
Person.prototype = { sayName: function(name) { alert(name); } }
這裡,整個原型對像被替換為新的原型對象,僅包含 sayName 方法。這將覆蓋所有現有的原型屬性,包括隱式綁定的建構函式屬性。
功能差異
優點和缺點
擴充的替代語法:
更清晰的物件字面量語法在不涵蓋的情況下,考慮使用Object.assign:
Object.assign(Person.prototype, { sayName: function(name) { alert(name); } });
以上是擴充和涵蓋 JavaScript 原型有什麼區別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!