gpt4 book ai didi

javascript - 对象字面量中的箭头函数

转载 作者:可可西里 更新时间:2023-11-01 01:29:39 25 4
gpt4 key购买 nike

<分区>

我想弄清楚为什么对象字面量中的箭头函数是用 window 作为 this 调用的。有人可以给我一些见解吗?

var arrowObject = {
name: 'arrowObject',
printName: () => {
console.log(this);
}
};

// Prints: Window {external: Object, chrome: Object ...}
arrowObject.printName();

以及按预期工作的对象:

var functionObject = {
name: 'functionObject',
printName: function() {
console.log(this);
}
};

// Prints: Object {name: "functionObject"}
functionObject.printName();

根据 Babel REPL , 它们被转译为

var arrowObject = {
name: 'arrowObject',
printName: function printName() {
console.log(undefined);
}
};

var functionObject = {
name: 'functionObject',
printName: function printName() {
console.log(this);
}
};

为什么 arrowObject.printName(); 不作为 this 调用 arrowObject

控制台日志来自Fiddle (其中未使用 use strict;)。

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