2012-07-17 68 views
0

這是獲取有關工作方式信息的一般問題。如果有人需要更多解釋,我可以發佈一些示例代碼。Javascript函數中的錯誤導致其他人停止工作

我在ColdFusion的8大幅方案,其中包括約8 JavaScript函數。如果一個函數,稱爲NW,不起作用,也許是因爲我丟了一個大括號,其他的一些函數可能無法工作,直到我修復該錯誤。我試圖去思考這些功能之間可能存在的聯繫。如果一個函數調用NW,我可以理解,如果NW被破壞,它可能無法運行。但是,如果兩者都從相同的元素調用,NW使用「onchange」,而其他函數使用「onclick」調用,但是同樣的問題發生,但是既不是調用另一個,也不以任何其他方式連接。

有人能向我解釋什麼是「引擎蓋下」要參加嗎?我不明白爲什麼這些單獨的功能是這樣交織在一起的。

+1

貝蒂,你絕對應該發佈代碼示例,以澄清你到底無法理解什麼。目前你的問題不是很有建設性,可能會被關閉。 – Sergii 2012-07-17 08:51:10

+0

從你的個人資料:「jhave designed」 – 2015-07-06 07:45:02

+0

你能否解釋爲什麼這些小錯誤對你非常重要,你會花時間找到並修復它們? – 2015-07-07 03:10:05

回答

0

忘記關閉一個大括號使所有你的JavaScript無效,直到他能找到一個爲函數聲明或條件語句既需要:JS引擎將不會在代碼看裏面,直到你有一個有效的結構化的代碼。

如果你有JS功能之間沒有相關性,那麼它爲什麼可以打破的唯一原因是在JavaScript語法錯誤。例如,如果你在一個函數中引用一個不存在的變量,當這個特定函數被調用時它將停止。所有其他的應該運行良好。另外,當一個函數在某個時間失敗時,通常所有的js代碼都會在這之後停止工作。

希望它是有意義的,但提供更多的細節需要看到的代碼...這是我嘗試:-)

+0

感謝西里爾 - 這似乎說明了一些,但不是全部。我沒有包含代碼,因爲有這麼多的情況 - 但下次我會顯示一些代碼。 – 2012-10-27 19:58:14

2

一個通用的解釋,因爲JavaScript是一種解釋型語言,是「致命」的語法錯誤直到你運行代碼纔會被捕獲。他們也可以有層疊效應。

如:

function nw(){ 

/* some code */ 

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

注意,因爲我錯過了function nw()末大括號解釋不會關閉nw()otherFunction是內nw封閉,但因爲它不是用大括號關閉它無法運行nw或現在假定關閉。所以這兩個功能都不起作用

ColdFusion的還增加了在一些網頁上,可以使這一過程難以調試自己的JS。

希望這是相關的,但它聽起來就像你正在經歷什麼。

+0

這對於大括號省略是非常有意義的。但是,如果函數中有任何語法錯誤,例如在if語句中無法與(和)配對,則所有函數都將不會運行,即使我已正確地使用該錯誤結束函數。 – 2012-10-25 23:42:41

+0

出現語法錯誤時,解釋程序無法繼續運行錯誤發生的點。如果你的第二個函數被定義在任何一個點之後,或者可能與具有該錯誤的函數相同的參照系,那麼解釋器將會停止,第二個函數將不會運行。代碼示例將有助於給出更清晰的答案。 – Dpolehonski 2012-10-26 11:51:15

相關問題