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

箭头函数 #5

Open
keep-run opened this issue Jul 25, 2019 · 0 comments
Open

箭头函数 #5

keep-run opened this issue Jul 25, 2019 · 0 comments

Comments

@keep-run
Copy link
Owner

keep-run commented Jul 25, 2019

这里是这里更加详细的解读

箭头函数和普通函数的区别:

没有this

普通函数的this是在执行时绑定的,但是箭头函数本身没有this.所以需要通过查找作用域链来确定this的值。如果箭头函数被普通函数包含,那么箭头函数中的this就是最近一层非箭头函数的this;

没有arguments对象

获取参数的时候,可以用参数名来获取,或者用ES6中的 rest参数获取;

不能用new关键字调用

JS函数有两个内部方法[[Call]]和[[Construct]]

  • 通过new关键字调用时,会指行[[Construct]],创建一个实例对象,然后再执行函数体,将this绑定到该实例对象上。(作为构造函数使用)
  • 直接调用时,执行[[call]]方法,直接执行函数体;

箭头函数没有[[Construct]]方法,因此不能作为构造函数使用,如果用new来调用,会报错;

没有原型

由于不能使用new调用箭头函数,因此没有构建原型的需求,所以箭头函数没有prototype

没有super

箭头函数没有原型,所以也不能通过super来访问原型属性。--实际上箭头函数没有spuer;跟 this、arguments、new.target 一样,这些值由外围最近一层非箭头函数决定。

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