gpt4 book ai didi

javascript - 使用包含空格的字符串调用 Error.constructor 时出现语法错误

转载 作者:搜寻专家 更新时间:2023-10-31 23:44:20 24 4
gpt4 key购买 nike

我在 firefox & chrome & Node.js 中尝试了以下代码:

Error.constructor.call({}, 'specified string'); // Uncaught SyntaxError: Unexpected identifier
Error.constructor.call({}, 'specified '); // work well
Error.constructor.call({}, 'specified'); // work well

我想知道为什么 JS 解释器给我这个错误。好像是用第二个参数调用了eval(),但我真的不知道发生了什么。

最佳答案

首先,Error.constructor 实际上是 Object.constructor:

> Error.constructor === Object.constructor
true

其次,Object.constructor可以用来创建一个函数:

> f = Object.constructor('foo', 'bar', 'return "hello " + foo + " and " + bar;')
[Function: anonymous]
> f('Alice', 'Bob')
'hello Alice and Bob'

其中最后一个参数是函数体,前面的参数是函数参数。

最后,你的代码:

Error.constructor.call({}, 'specified string');

表示您正在调用 Object.constructor 来创建一个具有函数体 指定字符串 的函数。函数体 specified string 是一段无效的 JavaScript 代码,因此出错。

关于javascript - 使用包含空格的字符串调用 Error.constructor 时出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56125624/

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