【javascript】コピペコードを見つけた
Visualforceで作成されたページを修正した後、不具合が発生しているということで調べていました。
原因は既存コードをコピペして作成した新しいfunctionでした。
// funcを呼び出す
function callFunc(){
func();
}
// 呼ばれない
function func(){
console.log('func1');
}
// こちらが呼ばれる
function func(){
console.log('func2');
}
「callFunc」から呼び出される「func」が2つ定義されています。
同じ名前の「function」が複数ある場合は最後のものが使用されるため、ログには「func2」と出力されます。
ソースを読んだ感じだと「func1」は既存のものであり、機能追加で「func2」を作成したようです。
実際にはjavascriptのファイルが分かれていましたが、その場合も同じですね。
あまりjavascriptを触ったことがない人が修正したのかもしれませんね。
急いで不具合を直してほしいとのことだったので、functionの名前を修正しておきました。
ことなる処理ごとに同じ名前を付けたい場合はオブジェクトを作成しておけば良いのでしょうか。
// funcを呼び出す
function callFunc(){
Process1.func();
Process2.func();
}
// 処理1のオブジェクト
var Process1 = function(){};
Process1.func = function(){
console.log('func1');
};
// 処理2のオブジェクト
var Process2 = function(){};
Process2.func = function(){
console.log('func2');
};
ちょっと分かりづらいでしょうか。
難しいものですね。
No comments.