JavaScript双冒号(绑定运算符)
如你所知,有一个提议.bind()
函数的快捷方式,所以你可以写:
::this.handleStuff
它将在es5中像这样工作:
this.handleStuff.bind(this)
我的问题是:是否有可能通过这样的论据?
我的意思是用上面提到的捷径写这个的方法:
this.handleStuff.bind(this, 'stuff')
这在React中是一个很常见的模式,所以稍微缩短它会很好。
否。 绑定操作符 ( 规范提案 )有两种风格:
-
方法提取
::obj.method ≡ obj.method.bind(obj)
-
“虚拟方法”呼叫
obj::function ≡ function.bind(obj) obj::function(…) ≡ function.call(obj, …)
它们都不能部分应用 。 对于你想要的,你应该使用箭头function:
(...args) => this.handleStuff('stuff', ...args) ≡ this.handleStuff.bind(this, 'stuff')