gpt4 book ai didi

javascript - 为什么它返回 "undefined"而不是 1

转载 作者:行者123 更新时间:2023-11-29 16:05:16 25 4
gpt4 key购买 nike

我是 javascript 的新手,根据我对 javascript 的了解,下面的问题应该返回 1,但它返回的是“undefined”。谁能告诉我为什么它不返回 1?

 var foo = {
bar: function() { return this.baz; },
baz: 1
};
(function(){
return typeof arguments[0]();
})(foo.bar);

最佳答案

当你用.操作符调用函数时,.左边的对象就成为调用的上下文,也就是this .但是当你将你的函数作为参数传递给另一个函数时,你就失去了上下文,因为你直接调用了它。如果您想保留上下文,您可以使用 bind

(function(){
return typeof arguments[0]();
})(foo.bar.bind(foo));

是的,您的函数实际上返回 baz 的类型,而不是值本身。如果要查看 1,请删除 typeof

关于javascript - 为什么它返回 "undefined"而不是 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44692637/

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