一个Javascript函数中的错误导致其他函数停止工作

Error in one Javascript function causes others to stop working

本文关键字:函数 其他 停止工作 Javascript 一个 错误      更新时间:2023-09-27

这是一个获取有关事物如何工作的信息的一般问题。如果有人需要更多的解释,我可以发布一些示例代码。

我在ColdFusion8中有一个实质性的程序,其中包括大约8个javascript函数。如果一个函数(称为NW)不工作,可能是因为我丢失了一个花括号,那么其他一些函数可能在我修复错误之前无法工作。我试图思考这些功能之间可能存在什么联系。当一个函数调用NW时,我可以理解,如果NW断开,它可能无法正常工作。然而,如果两者都是从同一个元素调用的,则会出现相同的问题,NW带有"onchange",OtherFunction带有"onclick",尽管两者都没有调用另一个,并且它们没有以任何其他方式连接。

有人能向我解释一下"引擎盖下"发生了什么吗?我不明白为什么这些单独的功能会以这种方式交织在一起。

因为JavaScript是一种解释语言,所以在运行代码之前不会发现"致命"的语法错误。它们也可能具有级联效应。

例如:

function nw(){
/* some code */
function otherFunction(){
 /* other code*/
}

注意,因为我错过了function nw()的结束大括号,解释器不会关闭nw(),而这个otherFunctionnw中的一个闭包,但因为它没有用大括号关闭,所以它不能运行nw或它现在假定的闭包。因此,这两个功能都不起作用。

Coldfusion还在一些页面上添加了自己的JS,这会使流程更难调试。

希望这是相关的,但这听起来像你正在经历的。

忘记关闭花括号会使所有javascript无效,直到他找到一个作为函数声明或条件语句两者都需要的:js引擎不会查看里面的代码,直到你有了有效的结构化代码。

如果js函数之间没有依赖关系,那么它可能会中断的唯一原因就是javascript语法中的错误。例如,如果引用函数中不存在的变量,则在调用该特定函数时,该变量将停止。所有其他的都应该运行良好。此外,当一个函数在某个时间失败时,通常所有的js代码都会在那之后停止工作。

希望它有意义,但提供更多细节需要查看代码。。。这是我尝试的一个通用解释:-)