为什么我的箭头函数有原型属性?

时间:2016-12-21 05:46:04

标签: javascript ecmascript-6 babeljs arrow-functions

如文件中所述 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions

箭头功能没有原型属性

但是当我在小提琴上运行时,它为什么会给出objecthttp://es6console.com/iwyii5vm/

为什么要给对象?

var Foo = () => {};
console.log(Foo.prototype); 

2 个答案:

答案 0 :(得分:7)

如果在本机ES6引擎中运行此代码,箭头函数将不会有prototype属性。

原生ES6的例子:



var Foo = () => {};
console.log(Foo.prototype); 




但是,如果将代码转换为ES5代码,则它将不是真正的箭头函数,并且它将具有prototype属性。

用Babel编译ES6的例子:

(此代码段已启用Babel)



var Foo = () => {};
console.log(Foo.prototype);




es6console.com的情况下,正在使用转换器,这就是您看到此行为的原因。

答案 1 :(得分:1)

这似乎是es6console实现es6功能的方式的实现细节。它在Chrome中正常运行,Chrome本身支持箭头功能。

enter image description here