Tân*_*Tân 3 javascript constructor arrow-functions
let anonymous = function () {
return 'hello'
};
let f = () => 'world';
console.log(new anonymous['__proto__'].constructor());
console.log(new f['__proto__'].constructor());
console.log(anonymous());
Run Code Online (Sandbox Code Playgroud)
anonymous
当我尝试创建它的新实例时,这两个函数都返回一个带有名称的函数.
我的问题:当我调用anonymous()
函数时,为什么它不会触及第二个构造函数(箭头函数)?
两个函数的[[Prototype]]是Function.prototype
.从这个意义上说,函数表达式和箭头函数没有区别.
let anonymous = function () {
return 'hello'
};
let f = () => 'world';
console.log(Object.getPrototypeOf(anonymous) === Function.prototype); // true
console.log(Object.getPrototypeOf(f) === Function.prototype); // true
Run Code Online (Sandbox Code Playgroud)
而Function.prototype.constructor
当然Function
.
所以你正在做new Function()
,这创造了一个什么都不做的功能.调用那个无用的函数是anonymous
因为它没有名字,但它不是anonymous
变量中的函数.
归档时间: |
|
查看次数: |
50 次 |
最近记录: |