gpt4 book ai didi

javascript - 如果我使用 `this` ,为什么 `window` 设置为 `function.apply(undefined, args)` ?

转载 作者:行者123 更新时间:2023-11-28 12:23:27 25 4
gpt4 key购买 nike

看一下这个例子:

function aaa () {
console.dir(this)
}

function bbb () {}

aaa.apply(undefined, [1,2,3]) // this in aaa is `window` object
aaa.apply(bbb, [1,2,3]) // this in aaa is `bbb` function

为什么是this设置为window在第一个应用案例中,即使我试图强制它为 undefined

最佳答案

当不在严格模式下并且 nullundefined 作为第一个参数传递给 .apply() 时,this 将被设置为全局对象,即浏览器中的 window

在严格模式下,它会将 this 设置为您传递的实际值。

<小时/>

一般来说,非严格模式试图容忍错误,甚至自动为您“修复”一些错误。这有时被证明是一个问题,因为本应立即出现编码错误的事情被系统“掩盖”了。严格模式的发明有多种原因,其中之一就是停止隐藏编码错误。

关于javascript - 如果我使用 `this` ,为什么 `window` 设置为 `function.apply(undefined, args)` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33381695/

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