function Shape() {
}
Shape.prototype.duplicate = function() {
console.log('duplicate')
}
function Circle(radius) {
this.radius = radius
}
// Circle.prototype = Object.create(Shape.prototype)
Circle.prototype.draw = function() {
console.log('draw')
}
const s = new Shape()
const c = new Circle(1)

function Shape() {
}
Shape.prototype.duplicate = function() {
console.log('duplicate')
}
function Circle(radius) {
this.radius = radius
}
Circle.prototype = Object.create(Shape.prototype)
Circle.prototype.draw = function() {
console.log('draw')
}
const s = new Shape()
const c = new Circle(1)

重设原型的时候最好也重设构造器函数
function Shape() {
}
Shape.prototype.duplicate = function() {
console.log('duplicate')
}
function Circle(radius) {
this.radius = radius
}
Circle.prototype = Object.create(Shape.prototype)
Circle.prototype.constructor = Circle
Circle.prototype.draw = function() {
console.log('draw')
}
const s = new Shape()
const c = new Circle(1)


本文详细探讨了JavaScript中原型链的工作原理,通过具体实例展示了如何创建对象和继承,重点讲解了构造函数、原型对象和原型链的关系,以及如何正确设置构造函数以避免原型链断裂。
926

被折叠的 条评论
为什么被折叠?



