Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

箭头函数为什么不能做构造函数,它与普通函数有什么区别 #90

Open
lovelmh13 opened this issue Jun 25, 2021 · 0 comments

Comments

@lovelmh13
Copy link
Owner

箭头函数没有自己的 this,也没有原型对象(prototype)

在 new 的时候,会生成一个 obj ,然后把 obj 的 proto 指向 构造函数的原型对象(prototype)上,来继承原型上的方法。因为尖头函数没有原型,所以报错。

箭头函数与普通函数的区别

  1. 不绑定 this,不支持 call apply bind
  2. 不绑定 arguments
  3. 没有 prototype
  4. 原型上的函数,不能使用箭头函数
function Person(name){
	this.name = name
}

// 原型函数使用箭头函数,其中的this指向全局对象,而不会指向构造函数
// 因此访问不到构造函数本身,也就访问不到实例属性
Person.prototype.say = ()=>{console.log(this.name)}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant