为什么使用 es5 语法 实现 class 的时候,函数要挂载在原型上,不是直接 this.getName 呢?
来源:8-7 new一个对象的过程是什么,手写代码表示
走去偷柿子呀
2022-07-31
function Foo(name) {
this.name = name
this.city = '北京'
}
Foo.prototype.getName = function () {
return this.name
}
为什么是上面的写法,而不是下面的呢?两者有什么区别吗?我测试了两个都能得到结果
function Foo2(name) {
this.name = name
this.city = '北京'
this.getName = function () {
return this.name
}
}
写回答
1回答
-
这个问题可以换一种方式问:对象自身的方法,和原型方法,有什么区别?—— 首先你要明白这个问题。
然后,class 语法就是通过原型实现的,不是通过 this.xxx 实现的,所以用原型。
032022-08-02
相似问题