为什么使用 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回答

双越

2022-07-31

这个问题可以换一种方式问:对象自身的方法,和原型方法,有什么区别?—— 首先你要明白这个问题。


然后,class 语法就是通过原型实现的,不是通过 this.xxx 实现的,所以用原型。

0
3
走去偷柿子呀
非常感谢!
2022-08-02
共3条回复

2周刷完100道前端优质面试真题 双越最新力作

『前端面试真题100道』视频详解

1509 学习 · 642 问题

查看课程