gpt4 book ai didi

JavaScript:未定义 Ci

转载 作者:行者123 更新时间:2023-11-29 15:06:48 24 4
gpt4 key购买 nike

我刚刚花了一半的时间来找出导致我的 JavaScript 代码中出现错误消息“Ci 未定义”的原因。终于找到原因了:

应该是(jQuery):

$("asd").bla();

它是:

("asd").bla();

(美元符号不见了)

现在,在解决问题后,我想了解消息本身:当 Firefox 告诉我“Ci”未定义时,它是什么意思。什么是“慈”?


更新:我使用的是当前版本的 Firefox (3.0.3)。

要重现,只需使用此 HTML 代码:

<html><head><title>test</title>
<script>
("asd").bla();
</script>
</head><body></body></html>

明确说明:我知道是什么导致了错误消息。我只想知道 Firefox 试图用“Ci”告诉我什么...

最佳答案

我不知道您使用的是哪个版本的 FF,但无论如何,该消息可能指的是 bla() 不是 String 对象上可用的函数。由于您缺少 $,这意味着您缺少一个函数,("asd") 将评估为一个字符串,然后 JavaScript 解释器将尝试调用 bla() 在那个对象上。因此,如果您的项目中有以下代码:

String.prototype.bla = function() {};

// now this next line will execute without any problems:
("asd").bla();

因此,Ci 可能是某个内部 Firefox 符号,它只是指一个函数的概念。这是我的猜测,我想您需要了解 Firefox 内部结构的人才能更好地回答这个问题...


更新:我在完全与您相同版本的 FF 中运行您的示例代码,但它报告错误为:

Error: "asd".bla is not a function
Source File: file:///C:/test.html
Line: 3

也许您有一个正在运行的扩展/插件来处理这个问题?也许是一些 Greasemonkey 脚本之类的?

关于JavaScript:未定义 Ci,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/269590/

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