91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

js實現繼承的方法有哪些

js
小億
106
2023-08-04 13:33:03
欄目: 編程語言

在 JavaScript 中,有幾種方法可以實現繼承:

  1. 原型鏈繼承:通過將子類的原型對象設置為父類的一個實例來實現繼承。這樣子類就可以繼承父類的屬性和方法。例如:
function Parent() {
this.name = 'Parent';
}
Parent.prototype.sayHello = function() {
console.log('Hello');
}
function Child() {}
Child.prototype = new Parent();
const child = new Child();
console.log(child.name); // 輸出 'Parent'
child.sayHello(); // 輸出 'Hello'
  1. 構造函數繼承:通過在子類構造函數中調用父類構造函數來實現繼承。這樣子類就可以繼承父類的屬性,并且子類的每個實例都有自己的屬性的副本。但是,子類無法繼承父類的原型上的方法。例如:
function Parent() {
this.name = 'Parent';
}
Parent.prototype.sayHello = function() {
console.log('Hello');
}
function Child() {
Parent.call(this);
}
const child = new Child();
console.log(child.name); // 輸出 'Parent'
child.sayHello(); // 報錯:child.sayHello is not a function
  1. 組合繼承:通過同時使用原型鏈繼承和構造函數繼承來實現繼承。這樣子類就可以繼承父類的屬性和方法,并且子類的每個實例都有自己的屬性的副本。例如:
function Parent() {
this.name = 'Parent';
}
Parent.prototype.sayHello = function() {
console.log('Hello');
}
function Child() {
Parent.call(this);
}
Child.prototype = new Parent();
Child.prototype.constructor = Child;
const child = new Child();
console.log(child.name); // 輸出 'Parent'
child.sayHello(); // 輸出 'Hello'
  1. 寄生組合繼承:通過創建一個中間函數來實現繼承,并且在該中間函數中使用 Object.create() 方法來創建子類原型的副本,然后再將該副本設置為子類的原型。這樣可以避免調用父類構造函數兩次。例如:
function Parent() {
this.name = 'Parent';
}
Parent.prototype.sayHello = function() {
console.log('Hello');
}
function Child() {
Parent.call(this);
}
Child.prototype = Object.create(Parent.prototype);
Child.prototype.constructor = Child;
const child = new Child();
console.log(child.name); // 輸出 'Parent'
child.sayHello(); // 輸出 'Hello'

這些都是常見的實現繼承的方法,每種方法都有自己的優缺點,可以根據具體情況選擇合適的方法。

0
巴青县| 广河县| 南雄市| 巴里| 南川市| 南江县| 宁乡县| 通辽市| 汽车| 汕尾市| 南开区| 郴州市| 二手房| 汪清县| 景宁| 耒阳市| 仪陇县| 博湖县| 铜山县| 瑞金市| 蒙城县| 桂阳县| 原阳县| 娄底市| 宝清县| 香河县| 疏勒县| 黔南| 镇雄县| 陆丰市| 克什克腾旗| 远安县| 家居| 庆元县| 怀安县| 伊川县| 航空| 松江区| 洪江市| 霍城县| 秦皇岛市|