gpt4 book ai didi

javascript - [this] 如何在严格模式下未定义?

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

当我在 Chrome 中运行此代码时,出现未捕获类型错误:无法读取未定义的属性“concat”

function _log()
{
'use strict'

[this].concat(Array.from(arguments)).forEach(
function (obj) { console.log(obj) }
)
}

_log('foo', 'bar');

我不明白为什么会这样。 [this] 怎么可能是未定义的?即使 this 未定义,[this] 仍然应该是一个数组,不是吗?

一个有趣的细节是,当我从函数中删除 use strict 行时,错误消失并且代码按预期运行,将函数上下文和参数分别记录在新行中。

在严格模式下使用关键字 this 是否有我不知道的特殊之处?

谢谢。

最佳答案

这是一个有趣的错误:

您只是忘记了 'use strict' 之后的分号,这完全改变了代码的解析方式:

'use strict'[this].concat...

您正在使用“use strict”链中名为 [Object window]" 的属性。当然它是 undefined,所以它没有任何名为 "concat" 的属性。

关于javascript - [this] 如何在严格模式下未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37570092/

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