为什么Google Chrome不支持此JavaScript语法?
我发起了一个像这样的JavaScript / jQuery点击监听器:
$("#test").on("click", () => { console.log("test"); });
这段代码在Firefox中完美运行,但在Chrome中,这似乎给我一个语法错误。 这是为什么,因为这对我来说看起来像’ok’语法。
您可以通过操作在控制台中快速测试
var a = () => {return 0;} a();
在Firefox 27.0.1中,它返回0在Chrome中它返回SyntaxError: Unexpected token )
胖箭是ES6的一个特征 (现在正式称为ECMAScript 2015)。 它已在Firefox中引入,但尚未在其他浏览器中引入(尤其不完全在V8中 ,这对于nodejs / iojs开发很有意义)。
由于它主要是糖,你最好在使用之前等待。
如果你需要范围绑定( this
在函数调用和定义函数的范围内是相同的,我们说的是“lexical this”),而不是
$("#test").on("click", () => { some code });
你可以干脆做
$("#test").on("click", (function() { some code }).bind(this));
如果你不这样做(如你的例子),那就干脆做
$("#test").on("click", function() { console.log("test"); });