__proto__和Object.create()实现继承对新增对象的影响
先创建实例对象,在使用Object.create和__proto__改变对象的原型,来实现继承,会存在不同的结果
1.使用Object.create
function User() {}
User.prototype.name = function() {
console.log("user.name")
}
function ChildFirst() {}
let childFirst = new ChildFirst(); // 实例化对象
ChildFirst.prototype = Object.create(User.prototype) //实现继承
ChildFirst.prototype.eat = function() {
console.log("child.eat")
}
childFirst.eat(); // 报错:找不到eat方法
2.使用__proto__
function User() {}
User.prototype.name = function() {
console.log("user.name")
}
function ChildFirst() {}
let childFirst = new ChildFirst(); // 实例化对象
ChildFirst.__proto__ = User.prototype //实现继承
ChildFirst.prototype.eat = function() {
console.log("child.eat")
}
childFirst.eat(); // child.eat
通过上述使用的案例发现:
1.Object.create使用后改变了原型对象
2.__proto__使用后改变原型对象父级的指向