gpt4 book ai didi

javascript - 普通函数和箭头函数在 _proto_ 构造函数方面有何不同?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:00:48 24 4
gpt4 key购买 nike

let anonymous = function () {
return 'hello'
};

let f = () => 'world';

console.log(new anonymous['__proto__'].constructor());
console.log(new f['__proto__'].constructor());


console.log(anonymous());

当我尝试创建它的新实例时,这两个函数都返回一个名称为 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

Function.prototype.constructor当然是Function

所以您正在执行 new Function(),它创建了一个不执行任何操作的函数。那个无用的函数被称为 anonymous 因为它没有名字,但它不是 anonymous 变量中的函数。

关于javascript - 普通函数和箭头函数在 _proto_ 构造函数方面有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39091582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com