js 双冒号运算符(::)

双冒号运算符::是 ES7 中提出的函数绑定运算符,用来取代call()、apply()、bind()调用。

双冒号左边是一个对象,右边是一个函数。该运算符会自动将左边的对象,作为上下文环境(即this对象),绑定到右边的函数上面。

javascript 复制代码
foo::bar;
// 等同于
bar.bind(foo);

foo::bar(...arguments);
// 等同于
bar.apply(foo, arguments);

如果双冒号左边为空,右边是一个对象的方法,则等于将该方法绑定在该对象上面。

javascript 复制代码
var method = obj::obj.foo;
// 等同于
var method = ::obj.foo;

let log = ::console.log;
// 等同于
var log = console.log.bind(console);

在react中应用

javascript 复制代码
<div onChange={::this.handleChange}></div>

onChange={::this.handleChange} 等价于 onChange={this::this.handleChange} 即 onChange={this.handleChange.bind(this)}

相关推荐
鹿屿二向箔11 分钟前
如何开发 HTML 游戏
前端·游戏·html
介si啥呀~15 分钟前
Vuex 的使用场景和使用方法
前端·javascript·vue.js·vuex
远方小镇18 分钟前
抖音开放平台-业务架构招前端
前端·javascript·面试
申朝先生31 分钟前
es6的箭头函数与普通函数的区别,箭头函数的this通常指向哪里,箭头函数可以用作构造函数吗?
前端·ecmascript·es6
TheK38 分钟前
MCP到底是什么
前端·人工智能
前端飞天猪39 分钟前
学习笔记:从手动到自动,让版本号管理成为团队的高效习惯
前端·github
关二哥拉二胡41 分钟前
前端的 AI 应用开发系列四:智能体Agent的发展历程
前端·javascript
best66642 分钟前
JS数组遍历方法这么多,for/forEach/forof我该怎么选?
前端·javascript
._Ha!n.1 小时前
React基础知识(一)
react.js
孟健1 小时前
【社招】字节跳动猫箱前端团队招人啦~
前端·招聘