这是获取有关工作原理的信息的一般问题。如果有人需要更多解释,我可以发布一些示例代码。
我在ColdFusion 8中有一个实质性的程序,其中包含大约8个javascript函数。如果一个函数,称之为NW,不起作用,也许是因为我丢失了一个大括号,其他一些函数可能无法工作,直到我修复bug。我试图想想这些功能之间可能存在什么联系。在函数调用NW的情况下,我可以理解,如果NW被破坏,它可能无法运行。但是,如果从同一个元素调用NW,并且使用" onchange"则会出现同样的问题。和其他功能" onclick"虽然两者都没有调用另一个,但它们没有以任何其他方式连接。
有人可以向我解释发生了什么事情"引擎盖下"?我不明白为什么这些单独的功能以这种方式交织在一起。
答案 0 :(得分:2)
由于JavaScript是一种解释型语言,因此在运行代码之前不会捕获“致命”的语法错误。它们也可以具有级联效应。
e.g:
function nw(){
/* some code */
function otherFunction(){
/* other code*/
}
请注意,因为我错过了function nw()
的大括号,解释器不会关闭nw()
而otherFunction
是nw
内的闭包,但因为它不是用大括号封闭它不能运行nw
或它现在假设关闭。所以这两种功能都不起作用
Coldfusion还在某些页面上添加了自己的JS,这可能会使进程难以调试。
希望这是相关的,但听起来就像你正在经历的那样。
答案 1 :(得分:0)
忘记关闭一个大括号使得你的所有javascript无效,直到他找到一个作为函数声明或条件语句需要两者:js引擎在你有一个有效的结构化代码之前不会查看里面的代码。
如果你的js函数之间没有依赖关系,那么它可能会破坏的唯一原因是javascript语法中的错误。例如,如果您在函数中引用非现有变量,则在调用此特定函数时它将停止。所有其他的应该运行良好。此外,当函数在某个时间失败时,通常所有的js代码都将在此之后停止工作。
希望它有意义,但是提供更多细节需要查看代码......这是我尝试通用解释: - )