gpt4 book ai didi

javascript - JavaScript this 关键字是如何工作的?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:21:34 25 4
gpt4 key购买 nike

我一直在做一些 JavaScript 开发,我遇到了这个问题。考虑以下代码

var obj = {};
obj.bind = function () {
console.info(this);
};

obj.bind();

我在 FireBug JavaScript 控制台上运行代码。预期结果是 this 在控制台中显示对该对象的引用。

它实际上显示undefined

但是,当我对代码进行此更改时

var obj = {};
obj.bind = function () {
this.x = 'x';
console.info(this);
};

obj.bind();

现在控制台显示this的预期值,它是对obj对象的引用。

为什么会这样?

最佳答案

undefined 是函数的返回值,您会得到它是因为您没有显式返回值。

在 Chrome 和 Firebug 中,它在返回值 undefined 之前正确地在控制台中显示对象。

所以如果你这样做:

var obj = {};
obj.bind = function () {
console.info(this);
return "foo";
};

obj.bind();

...您应该会看到如下内容:

Object {   }
"foo"

如果 Firebug 在对象为空时未显示该对象,您可能需要检查以确保您使用的是最新版本。

关于javascript - JavaScript this 关键字是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6673114/

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