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

溫馨提示×

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
思茅市| 河源市| 绍兴县| 板桥市| 盈江县| 平顶山市| 廊坊市| 从江县| 钟祥市| 昌吉市| 卫辉市| 班玛县| 农安县| 安陆市| 古蔺县| 尼勒克县| 松江区| 巢湖市| 夏河县| 沁源县| 额尔古纳市| 全州县| 富顺县| 宾阳县| 建始县| 鄂伦春自治旗| 洞口县| 当涂县| 兴安盟| 朝阳区| 宁夏| 和林格尔县| 永安市| 怀来县| 清水县| 肇庆市| 盖州市| 双流县| 乌苏市| 衢州市| 乐安县|