0

これは、物事がどのように機能するかについての情報を得るための一般的な質問です。さらに説明が必要な場合は、サンプルコードを投稿できます。

私はColdFusion8に、約8つのjavascript関数を含む実質的なプログラムを持っています。NWと呼ばれる1つの関数が機能しない場合、おそらく中括弧を失ったために、バグを修正するまで他の機能の一部が機能しない可能性があります。私はこれらの機能の間にどのようなつながりがあるのか​​を考えようとしていました。関数がNWを呼び出す場合、NWが壊れていると機能しなくなる可能性があることを理解できました。ただし、両方が同じ要素から呼び出された場合、同じ問題が発生します。NWは「onchange」で、OtherFunctionは「onclick」で呼び出されますが、どちらも他方を呼び出しておらず、他の方法で接続されていません。

誰かが「ボンネットの下で」何が起こっているのか私に説明してもらえますか?これらの別々の機能がこのように絡み合っている理由がわかりません。

4

2 に答える 2

2

JavaScript は解釈された言語であるため、「致命的」な構文エラーは、コードを実行するまで検出されません。また、カスケード効果を持つこともできます。

例えば:

function nw(){

/* some code */

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

function nw()インタープリターの最後の中かっこを逃したため閉じずnw()、これotherFunctionは 内のクロージャーですnwが、中かっこで閉じていないため、実行できないnwか、現在想定されているクロージャーであることに注意してください。したがって、どちらの機能も機能しません。

また、Coldfusion は一部のページに独自の JS を追加するため、プロセスのデバッグが難しくなる可能性があります。

これが関連していることを願っていますが、あなたが経験していることのように聞こえます.

于 2012-07-17T10:59:50.383 に答える
0

中かっこを閉じるのを忘れると、関数宣言または条件ステートメントが両方を必要とするため、JavaScript が見つかるまですべての JavaScript が無効になります。有効な構造化コードが得られるまで、js エンジンは内部のコードを調べません。

js 関数間に依存関係がない場合、それが機能しなくなる唯一の理由は、javascript 構文のエラーです。たとえば、関数で存在しない変数を参照すると、この特定の関数が呼び出されると停止します。他のすべてのものは正常に動作するはずです。また、関数が特定の時点で失敗すると、通常、その後すべての js コードが機能しなくなります。

それが理にかなっていることを願っていますが、コードを確認するために詳細を説明する必要があります...それは私の一般的な説明の試みです:-)

于 2012-07-17T10:59:04.177 に答える