1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-28 21:32:20 +00:00

修改function/箭头函数

This commit is contained in:
ruanyf 2014-08-24 16:23:28 +08:00
parent b17a970cd0
commit 2e6377c985

View File

@ -302,7 +302,7 @@ var result = values.sort((a, b) => a - b);
- 不可以当作构造函数也就是说不可以使用new命令否则会抛出一个错误。
- 不可以使用arguments对象该对象在函数体内不存在。
关于this对象下面的代码将它绑定定义时的对象。
上面三点中第一点尤其值得注意。this对象的指向是可变的但是在箭头函数中它是固定的。下面的代码是一个例子将this对象绑定定义时所在的对象。
```javascript
@ -312,7 +312,7 @@ var handler = {
init: function() {
document.addEventListener("click",
event => this.doSomething(event.type), false);
event => this.doSomething(event.type), false);
},
doSomething: function(type) {
@ -322,6 +322,8 @@ var handler = {
```
上面代码的init方法中使用了箭头函数这导致this绑定handler对象。否则doSomething方法内部的this对象就指向全局对象运行时会报错
上面代码的init方法中使用了箭头函数这导致this绑定handler对象否则回调函数运行时this.doSomething这一行会报错因为此时this指向全局对象
由于this在箭头函数中被绑定所以不能用call()、apply()、bind()这些方法去改变this的指向。
长期以来JavaScript语言的this对象一直是一个令人头痛的问题在对象方法中使用this必须非常小心。箭头函数绑定this很大程度上解决了这个困扰。