为什么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"); }); 
Interesting Posts