1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-24 18:32:22 +00:00

docs(function): edit 双冒号运算符 #529

This commit is contained in:
ruanyf 2017-10-26 11:24:57 +08:00
parent ce3b9f598b
commit cc33b1fd3d

View File

@ -911,11 +911,11 @@ var fix = f => (x => f(v => x(x)(v)))
上面两种写法几乎是一一对应的。由于λ演算对于计算机科学非常重要这使得我们可以用ES6作为替代工具探索计算机科学。
## 绑定 this
## 双冒号运算符
箭头函数可以绑定`this`对象,大大减少了显式绑定`this`对象的写法(`call``apply``bind`)。但是,箭头函数并不适用于所有场合,所以ES7提出了“函数绑定”function bind运算符用来取代`call``apply``bind`调用。虽然该语法还是ES7的一个[提案](https://github.com/zenparsing/es-function-bind)但是Babel转码器已经支持
箭头函数可以绑定`this`对象,大大减少了显式绑定`this`对象的写法(`call``apply``bind`)。但是,箭头函数并不适用于所有场合,所以现在有一个[提案](https://github.com/zenparsing/es-function-bind)提出了“函数绑定”function bind运算符用来取代`call``apply``bind`调用
函数绑定运算符是并排的两个冒号(::双冒号左边是一个对象右边是一个函数。该运算符会自动将左边的对象作为上下文环境即this对象绑定到右边的函数上面。
函数绑定运算符是并排的两个冒号(`::`),双冒号左边是一个对象,右边是一个函数。该运算符会自动将左边的对象,作为上下文环境(即`this`对象),绑定到右边的函数上面。
```javascript
foo::bar;
@ -944,7 +944,7 @@ let log = ::console.log;
var log = console.log.bind(console);
```
由于双冒号运算符返回的还是原对象,因此可以采用链式写法。
双冒号运算符的运算结果,还是一个对象,因此可以采用链式写法。
```javascript
// 例一