javascript 中的原型式继承通过 object.create() 方法实现,该方法创建一个新对象,并将现有对象作为其原型。具体做法是调用 object.create(existingobject),新对象会直接共享原型的属性和方法,从而实现代码复用。

如何创建基于原型的子对象
使用 Object.create() 可以创建一个以指定对象为原型的空对象。这个新对象可以直接访问原型上的属性,且修改原型会影响所有基于该原型创建的对象。

var parent = {
name: 'Parent',
getName: function() {
return this.name;
}
};
var child = Object.create(parent);
child.name = 'Child';
console.log(child.getName()); // 输出: Child
console.log(Object.getPrototypeOf(child) === parent); // 输出: true原型链查找机制是怎样的
当访问对象的属性时,JavaScript 引擎会先在对象自身查找,如果找不到,则沿着原型链向上查找,直到找到属性或到达原型链顶端(null)。
立即学习“Java免费学习笔记(深入)”;

var grandparent = {
type: 'Grandparent'
};
var parent = Object.create(grandparent);
parent.type = 'Parent';
var child = Object.create(parent);
delete child.type; // 确保 child 没有自己的 type 属性
console.log(child.type); // 输出: Parent (从 parent 原型获取)
console.log(child.__proto__ === parent); // 输出: true
console.log(parent.__proto__ === grandparent); // 输出: true在原型式继承中如何处理属性冲突
当子对象和原型对象拥有同名属性时,子对象自身的属性会屏蔽原型上的属性。这是 JavaScript 原型链查找的基本规则:优先返回对象自身的属性。


















