gpt4 book ai didi

Javascript this关键字,分配上下文绑定(bind)函数来调用变量

转载 作者:行者123 更新时间:2023-11-30 20:05:40 26 4
gpt4 key购买 nike

为什么这段代码的最后一行不起作用?如何在不更改 Thing 或 obj 的情况下使其工作?如何将调用“obj.getName”的上下文绑定(bind)函数分配给变量“f”(即,表达式“f()”将导致调用“obj.getName”)。

class Thing{
constructor(name) {this._name = name;}
getName() { return this._name;}
}

const obj = new Thing('a');
const f = obj.getName;
const name = f();

最佳答案

这只是解释为什么它不起作用,解决方案已经在评论中。

Why doesn't the last line of this code work

让我们分解它以便更清楚地理解它。

在这一行

const f = obj.getName;

您正在复制函数 getName 定义,并将其设置为 f

f 现在是一个普通函数,就像您定义的任何函数一样。

let f = function getName() {
return this._name;
}

现在如果你调用它,this 不会是未定义的吗?

关于Javascript this关键字,分配上下文绑定(bind)函数来调用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52956869/

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