这里主要记录一个构造函数,因为继承,然后引起 construct 属性指向紊乱问题
详细解说看阮一峰大佬的博客:Javascript面向对象编程(二):构造函数的继承
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
测试构造函数紊乱问题
<script>
function A () {
this.name = 'Abner'
this.color = [1,2] // 这里只有引用类型的值会发生这个事情
}
A.prototype.sayName = function () {
console.log(this.name)
}
A.prototype.logColor = function () {
console.log(this.color)
}
function B () {
this.age = 22
}
B.prototype = new A()
B.prototype.construct = B // 纠正构造函数的指向,否则回引起构造函数紊乱问题
B.prototype.sayAge = function () {
this.color.push(8)
console.log(this.age)
console.log(this.name)
}
const a1 = new B()
console.log(B)
console.log(a1)
</script>
</body>
</html>