亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
恩施市| 石首市| 南和县| 潼关县| 资阳市| 会同县| 仪征市| 游戏| 文昌市| 临颍县| 金湖县| 西安市| 宁国市| 视频| 都昌县| 敦煌市| 霍林郭勒市| 勐海县| 班玛县| 寿阳县| 龙岩市| 五大连池市| 余庆县| 蒲城县| 武鸣县| 峡江县| 长宁区| 九龙城区| 鄂托克前旗| 塘沽区| 湾仔区| 英德市| 荥阳市| 新晃| 龙里县| 奉新县| 沙雅县| 辰溪县| 天津市| 永福县| 镇原县|