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

use*_*513 4 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); 
Run Code Online (Sandbox Code Playgroud)

Ale*_*ara 7

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

本机ES6的示例:

var Foo = () => {};
console.log(Foo.prototype); 
Run Code Online (Sandbox Code Playgroud)

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

使用Babel编译ES6的示例:

(此代码段已启用Babel)

var Foo = () => {};
console.log(Foo.prototype);
Run Code Online (Sandbox Code Playgroud)

在这种情况下es6console.com,正在使用一个转换器,这就是你看到这种行为的原因.