gpt4 book ai didi

javascript - native 警报上的函数引用因调用对象无效而失败

转载 作者:行者123 更新时间:2023-11-30 00:24:36 25 4
gpt4 key购买 nike

考虑以下代码:

function test()
{
return {
alert : function(txt){ alert(txt);}
}
}
test().alert("Boo");

这将完美执行并提醒 Boo

以下将失败:

function test()
{
return {
alert : window.alert
}
}
test().alert("Boo");

错误无效调用对象

为什么最后一个例子在引用window.alert时失败了?

最佳答案

window.alert 期望 window 绑定(bind)到 this,当你这样调用它时,它是不满足的。 (即 test().alert 会将 this 设置为从 test() 返回的对象。)

你可以这样修复它:

return {
alert : window.alert.bind(window)
}
例如,

console.log 的行为方式相同。

关于javascript - native 警报上的函数引用因调用对象无效而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31905582/

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