Bik*_*ire 12 javascript jquery google-chrome arrow-functions
我发起了一个JavaScript/jQuery点击监听器,如下所示:
$("#test").on("click", () => {
console.log("test");
});
Run Code Online (Sandbox Code Playgroud)
这段代码在Firefox中完美运行,但在Chrome中,这似乎给我一个语法错误.这是为什么,因为这对我来说看起来像'ok'语法.
您可以通过操作在控制台中快速测试
var a = () => {return 0;}
a();
Run Code Online (Sandbox Code Playgroud)
在Firefox 27.0.1中,它返回0 In Chrome返回 SyntaxError: Unexpected token )
Den*_*ret 33
该脂肪箭头是ES6的特性(现在正式称为的ECMAScript 2015).它已在Firefox中引入,但尚未在其他浏览器中引入(尤其不完全在V8中,这对于nodejs/iojs开发很有意义).
由于它主要是糖,你最好在使用之前等待.
如果你需要范围绑定(this在函数调用和定义函数的范围内是相同的,我们说的是"lexical this"),而不是
$("#test").on("click", () => {
some code
});
Run Code Online (Sandbox Code Playgroud)
你可以干脆做
$("#test").on("click", (function() {
some code
}).bind(this));
Run Code Online (Sandbox Code Playgroud)
如果你不这样做(如你的例子),那就干脆做
$("#test").on("click", function() {
console.log("test");
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5093 次 |
| 最近记录: |