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)}

相关推荐
用户921080262869 分钟前
前端 Vue 专栏 06:异步更新机制、任务队列与 nextTick
前端
杨芋爽33 分钟前
管理后台列表页为什么一直转圈?从一次 1+N 请求扇出聊聊前端性能优化
javascript
晴天1643 分钟前
Chrome DevTools 深度调试指南
前端·chrome·chrome devtools
林冠宏_指尖下的幽灵44 分钟前
AI发展下的后编程时代思考
前端·人工智能·后端
_山海1 小时前
Bun入门指南
前端·javascript·后端
想睡懒觉1 小时前
我用 CSS 3D 做了个星空隧道 Loading,没有 Three.js
前端
labixiong1 小时前
transition 写在 CSS 变量上为什么不生效?给变量补张「类型身份证」
前端·css·html
YHL2 小时前
🧠 Agent 记忆进阶:总结压缩与向量检索 —— 从截断到 Milvus 长期记忆
前端·人工智能
YHL2 小时前
🎯 JavaScript 单例模式(Singleton Pattern)—— 从理论到实战
javascript·设计模式