下面,我创建了两个函数f1作为常规函数,f2作为箭头函数,其中箭头函数无法使用new关键字实例化,但出现以下错误:
var f1 = () => { console.log('f1') }
// undefined
var b = new f1();
// Uncaught TypeError: f1 is not a constructor
同时
function f2() { console.log('f2') }
// undefined
var c = new f2();
// f2
// undefined
f1和f2的类型函数如下:
typeof f1
// "function"
typeof f2
// "function"
但是普通函数f1具有具有构造函数的 prototype 属性,而作为箭头函数的函数f2没有它
f2.prototype.constructor
// ƒ f2() { console.log('f2') }
f1.prototype
// undefined
这是箭头功能的正常行为吗,因为它们不包含原型属性,或者我做错了什么?