中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

es5實現繼承的方式有哪些

小億
196
2023-08-07 22:23:33
欄目: 編程語言

在 ES5 中,可以通過以下方式實現繼承:

  1. 使用原型鏈繼承:將父類的實例作為子類的原型。這樣子類就可以繼承父類的屬性和方法。示例代碼如下:
function Parent() {
this.name = 'Parent';
}
Parent.prototype.sayHello = function() {
console.log('Hello, ' + this.name);
};
function Child() {
this.age = 18;
}
Child.prototype = new Parent();
var child = new Child();
child.sayHello(); // 輸出: Hello, Parent
  1. 使用借用構造函數繼承:在子類構造函數中調用父類構造函數,通過 callapply 方法將父類的屬性和方法綁定到子類實例上。示例代碼如下:
function Parent() {
this.name = 'Parent';
}
function Child() {
Parent.call(this);
this.age = 18;
}
var child = new Child();
console.log(child.name); // 輸出: Parent
  1. 使用組合繼承:將原型鏈繼承和借用構造函數繼承結合起來。即使用原型鏈實現對父類原型屬性和方法的繼承,使用借用構造函數實現對父類實例屬性的繼承。示例代碼如下:
function Parent() {
this.name = 'Parent';
}
Parent.prototype.sayHello = function() {
console.log('Hello, ' + this.name);
};
function Child() {
Parent.call(this);
this.age = 18;
}
Child.prototype = new Parent();
Child.prototype.constructor = Child;
var child = new Child();
child.sayHello(); // 輸出: Hello, Parent
  1. 使用原型式繼承:通過 Object.create 方法創建一個新對象,并將父類實例對象作為新對象的原型。示例代碼如下:
function createObject(proto) {
function F() {}
F.prototype = proto;
return new F();
}
var parent = {
name: 'Parent',
sayHello: function() {
console.log('Hello, ' + this.name);
}
};
var child = createObject(parent);
child.sayHello(); // 輸出: Hello, Parent
  1. 使用寄生式繼承:創建一個封裝繼承過程的函數,在函數內部創建一個繼承自父類的新對象,并添加子類的屬性和方法。示例代碼如下:
function createChild(parent) {
var child = Object.create(parent);
child.age = 18;
return child;
}
var parent = {
name: 'Parent',
sayHello: function() {
console.log('Hello, ' + this.name);
}
};
var child = createChild(parent);
child.sayHello(); // 輸出: Hello, Parent

注意:以上幾種方式都有各自的優缺點,需要根據具體需求選擇合適的方式。

0
克拉玛依市| 三门县| 蓬安县| 寻乌县| 长宁县| 古浪县| 太仆寺旗| 灯塔市| 金山区| 纳雍县| 尼玛县| 莱阳市| 宜宾市| 通化县| 电白县| 南开区| 沛县| 常山县| 仪征市| 九龙城区| 山阴县| 沈丘县| 红安县| 长兴县| 石台县| 伊春市| 垫江县| 双峰县| 依兰县| 安宁市| 金乡县| 宝丰县| 石家庄市| 大余县| 齐河县| 崇信县| 乾安县| 甘孜县| 深水埗区| 分宜县| 洛宁县|