gpt4 book ai didi

javascript - 'this' 不能成为对象吗?

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

刚在面试中被问到:这个函数永远不会返回“对象”吗?

function foo() { return typeof this; }

我说我不确定但猜到了

foo.bind(undefined)()

可能会返回 'undefined'。但是在家里用我的控制台测试它是行不通的。

最佳答案

在严格模式下,this 不会被强制转换为一个对象:

'use strict';
function foo() { return typeof this; }

console.log(foo.call('abc'));
console.log(foo.call(5));

(但这是一件真的很奇怪的事情,我希望永远不要在严肃的代码中看到它)

this 如果没有调用上下文,在严格模式下也可以是 undefined:

'use strict';
function foo() { return typeof this; }

console.log(foo());

在 sloppy 模式下,函数似乎不会被强制转换为对象(尽管原语):

function foo() { return typeof this; }

console.log(foo.call(() => 'abc'));

关于javascript - 'this' 不能成为对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54174897/

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