首頁 >web前端 >js教程 >JavaScript 中的 new 關鍵字如何建立物件並實現繼承?

JavaScript 中的 new 關鍵字如何建立物件並實現繼承?

Linda Hamilton
Linda Hamilton原創
2024-12-24 12:24:11996瀏覽

How Does the `new` Keyword Work in JavaScript to Create Objects and Implement Inheritance?

探索JavaScript 中的「new」關鍵字

理解「new」關鍵字

理解「new」關鍵字

在JavaScript 中,「new」關鍵字在物件建立和繼承概念中扮演關鍵角色。儘管 JavaScript 被譽為非物件導向語言,但它透過「new」關鍵字引入了一種獨特的基於物件程式設計方法。

    「new」關鍵字的用途
  1. 「new」關鍵字有幾個關鍵職責:
  2. 物件建立:
  3. 啟動新物件的建立。
  4. 原型設定:
  5. 將新建立物件的內部 [[prototype]] 屬性設定為建構子的外部原型物件。
  6. 'this' 參考:
  7. 它將'this' 變數指派給新建立的變數object.
  8. 建構函式呼叫:以新建立的物件為上下文觸發建構函數的執行。

物件回傳:它傳回新建立的對象,除非建構函式傳回非空物件參考。

  • 理解[[prototype]] 和'prototype' 屬性
  • [[prototype]] 屬性:這個內部屬性對於每個物件都是唯一的,並儲存對該物件原型的引用。它不能直接修改,但可以使用 Object.getPrototypeOf() 存取。

'prototype' 屬性: 這是函數物件獨有的可存取屬性。它允許存取原型對象,該對象將由使用該函數作為構造函數創建的所有實例共用。

function ObjMaker() { this.a = 'first'; }
// 'ObjMaker' is the constructor function

ObjMaker.prototype.b = 'second';
// 'ObjMaker.prototype' is the prototype object

obj1 = new ObjMaker();
// 'new' creates a new 'obj1' object, assigns the prototype, and executes 'ObjMaker'

obj1.a; // 'first'
obj1.b; // 'second'
// 'obj1' inherits 'b' from 'ObjMaker.prototype' while still accessing its own property 'a'

使用「new」建立物件的範例

繼承層次結構'new'
function SubObjMaker() {}
SubObjMaker.prototype = new ObjMaker(); // deprecated, use Object.create() now

SubObjMaker.prototype.c = 'third';
obj2 = new SubObjMaker();

obj2.c; // 'third'
obj2.b; // 'second'
obj2.a; // 'first'
// 'obj2' inherits 'c' from 'SubObjMaker.prototype', 'b' from 'ObjMaker.prototype', and 'a' from 'ObjMaker'

繼承層次結構'new'透過'new' 關鍵字,JavaScript 允許基於原型的繼承模型。透過設定 [[prototype]] 屬性,物件可以從其建構函數的原型繼承屬性和方法。這使得能夠創建擴展現有類別的子類,如下所示:總之,JavaScript 中的'new' 關鍵字不僅有助於物件創建,而且還支援模擬基於類別的靈活繼承機製程式設計。

以上是JavaScript 中的 new 關鍵字如何建立物件並實現繼承?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn