function Person(name) {
this.name = name
this.showName = function () {
console.log(this.name)
return this.name
}
}
console.log('Person')
console.dir(Person)
class Person1 {
showName() {
console.log(this.name)
return this.name
}
}
console.log('Person1')
console.dir(Person1)
如上图代码所示,
我们都知道,构造函数Person的prototype属性指向浏览器内存中创建的原型对象(Person.prototype),
通过构造函数Person创建的原型对象(Person.prototype)没有showName方法
而通过class生成的原型对象(Person1.prototype)中有showName方法
请问,这是什么原因。
构造函数必须使用Person.prototype.showName = ...
才和 class效果相同