ES6-函数的扩展-双冒号运算符
来源:互联网 发布:理想禁区 知乎 编辑:程序博客网 时间:2024/05/29 14:07
箭头函数可以绑定 this 对象,大大减少了显式绑定 this 对象的写法(call、apply、bind)。但是,箭头函数并不适用于所有场合,所以现在有一个提案,提出了“函数绑定”(function bind)运算符,用来取代 call、apply、bind 调用。
函数绑定运算符是并排的两个冒号(::),双冒号左边是一个对象,右边是一个函数。改运算符会自动将左边的对象,作为上下文环境(即 this 对象),绑定到右边的函数上面。
foo::bar;// 等同于bar.bind(foo);foo::bar(...arguments);// 等同于bar.apply(foo, arguments);const hasOwnProperty = Object.prototype.hasOwnProperty;function hasOwn(obj, key) { return obj::hasOwnProperty(key);}如果双冒号左边为空,右边是一个对象的方法,则等于将该方法绑定在该对象上面。
var method = obj::obj.foo;// 等同于var method = ::obj.foo;let log = ::console.log;// 等同于var log = console.log.bind(console);双冒号运算符的运算结果,还是一个对象,因此可以采用链式写法。
// 例一import { map, takeWhile, forEach } from "iterlib";getPlayers()::map(x => x.character())::takeWhile(x => x.strength > 100)::forEach(x => console.log(x));// 例二let { find, html } = jake;document.querySelectorAll("div.myClass")::find("p")::html("hahaha");
阅读全文
0 0
- ES6-函数的扩展-双冒号运算符
- es6的扩展运算符
- ES6-数组的扩展-扩展运算符
- es6 javascript对象的扩展运算符
- es6 javascript对象的扩展运算符
- ES6-对象的扩展-对象的扩展运算符
- es6函数的扩展
- ES6-函数的扩展
- ES6--函数的扩展
- ES6--对象、函数的扩展
- ES6(七) 函数的扩展
- ES6中函数的扩展
- es6之函数的扩展
- ES6(六: 函数扩展)(默认值,rest参数,扩展运算符)
- java8 双冒号运算符::
- ES6(ECMAScript 6 ) 解构 扩展运算符
- es6 扩展运算符 三个点(...)
- ES6 rest参数和扩展运算符
- win10 vmware 桥接网络连接问题
- 清除myeclipse中 Launch configuration的历史记录
- 数论 图论板子&&数据结构
- Windows下git连接GitHub(github.com)、码市(coding.net)、码云(gitee.com)
- AbstractApplicationContext.refresh()
- ES6-函数的扩展-双冒号运算符
- HTML 小技巧
- protege4.3安装使用
- Android 事件处理概述
- 欢迎使用CSDN-markdown编辑器
- JZOJ 5464 乘积
- centos7.2 grafana的安装与简单使用
- [视频处理]自译的ffmpeg ./configure参数
- Rank Scores