本文主要是介绍Object.create的原型继承,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
● 首先我们来从这种方法来创建一个和之前一样计算年龄的方法
const PersonProto = {cacleAge() {console.log(2038 - birthYear);}
};const zhangsan = Object.create(PersonProto);
console.log(zhangsan);
● 发现确实可以实现原型继承的特性
const PersonProto = {cacleAge() {console.log(2038 - this.birthYear);}
};const zhangsan = Object.create(PersonProto);
console.log(zhangsan);
zhangsan.name = 'ZhangSan';
zhangsan.birthYear = 2002;
zhangsan.cacleAge();
总结
● 使用 Object.create 创建对象时,新对象会直接链接到指定的原型对象。这意味着新对象可以访问原型对象上的属性和方法。
● 但是构造函数是 JavaScript 中另一种实现对象创建和继承的方法。通常,我们会定义一个函数,并使用 new 操作符来创建实例。
● Object.create 是一种更为简洁和直接的原型继承方式,适合创建新对象并链接已有对象的情况。而造函数则是传统的面向对象编程方式,适合需要初始化多个实例和实现复杂继承关系的场景。
验证
console.log(zhangsan.__proto__ == PersonProto);
● 最上面那种给对象传参数的方法看上去有点蠢,我们也可以向下面这样去写
const PersonProto = {cacleAge() {console.log(2038 - this.birthYear);},init(firstName, birthYear) {this.firstName = firstName;this.birthYear = birthYear;}
};
const lisi = Object.create(PersonProto);
lisi.init('lisi', 1998);
lisi.cacleAge();
这篇关于Object.create的原型继承的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!