一个Javascript函数中的错误导致其他函数停止工作
Error in one Javascript function causes others to stop working
这是一个获取有关事物如何工作的信息的一般问题。如果有人需要更多的解释,我可以发布一些示例代码。
我在ColdFusion8中有一个实质性的程序,其中包括大约8个javascript函数。如果一个函数(称为NW)不工作,可能是因为我丢失了一个花括号,那么其他一些函数可能在我修复错误之前无法工作。我试图思考这些功能之间可能存在什么联系。当一个函数调用NW时,我可以理解,如果NW断开,它可能无法正常工作。然而,如果两者都是从同一个元素调用的,则会出现相同的问题,NW带有"onchange",OtherFunction带有"onclick",尽管两者都没有调用另一个,并且它们没有以任何其他方式连接。
有人能向我解释一下"引擎盖下"发生了什么吗?我不明白为什么这些单独的功能会以这种方式交织在一起。
因为JavaScript是一种解释语言,所以在运行代码之前不会发现"致命"的语法错误。它们也可能具有级联效应。
例如:
function nw(){
/* some code */
function otherFunction(){
/* other code*/
}
注意,因为我错过了function nw()
的结束大括号,解释器不会关闭nw()
,而这个otherFunction
是nw
中的一个闭包,但因为它没有用大括号关闭,所以它不能运行nw
或它现在假定的闭包。因此,这两个功能都不起作用。
Coldfusion还在一些页面上添加了自己的JS,这会使流程更难调试。
希望这是相关的,但这听起来像你正在经历的。
忘记关闭花括号会使所有javascript无效,直到他找到一个作为函数声明或条件语句两者都需要的:js引擎不会查看里面的代码,直到你有了有效的结构化代码。
如果js函数之间没有依赖关系,那么它可能会中断的唯一原因就是javascript语法中的错误。例如,如果引用函数中不存在的变量,则在调用该特定函数时,该变量将停止。所有其他的都应该运行良好。此外,当一个函数在某个时间失败时,通常所有的js代码都会在那之后停止工作。
希望它有意义,但提供更多细节需要查看代码。。。这是我尝试的一个通用解释:-)
- Jquery未定义函数正在停止其他操作
- 执行php函数的onclick事件的其他替代方案
- 如何在.js函数中检索来自其他模板的表单的目标值
- 对其他函数使用匿名函数's参数
- 创建要在其他函数中使用的全局变量
- 调试一个简单的jQuery函数;想知道是否与其他代码冲突
- 在Meteor中如何将数据从函数内部复制到其他模板
- 在Jquery调用之间添加其他函数
- 使用一个Javascript函数提交多个表单可以在FF中工作,而不需要其他浏览器
- Mocking console.log()/MOCHA测试框架中的任何其他函数
- 如何从ipify函数返回ip地址,以便在其他函数中使用
- 如果没有其他函数链接到promise,则默认行为
- Javascript创建函数,以便在其他函数之间共享变量
- AngularJS:如何与其他控制器共享作用域函数和变量
- Firefox扩展开发:如何在内容脚本中创建一个全局函数,以便其他加载的脚本文件可以访问它
- 使通过函数加载的JSON可用于其他函数
- 如何使用 javascript 函数取决于是否其他
- 如何在 JavaScript 中访问函数中的其他属性值作为对象属性值
- 有没有办法将其他参数传递给 scrollTarget 回调函数
- 如何在创建的字段上应用 .change 函数 b 其他字段的 .change 函数