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

Why does my arrow function have a prototype property?

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

箭头函数没有原型属性

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

为什么是送对象?

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

如果你在原生 ES6 引擎中 运行 这段代码,箭头函数将不会有 prototype 属性。

原生 ES6 示例:

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

但是,如果代码被转译为 ES5 代码,它将不是真正的箭头函数,并且会有 prototype 属性.

使用 Babel 转译 ES6 的示例:

(此代码段启用了 Babel)

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

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

这似乎是 es6console 实现 es6 功能的方式的实现细节。它在原生支持箭头函数的 Chrome 中正常工作。