オブジェクト リテラルを使用して重複したコードをラップし、一度呼び出されたときにブール値を設定して、再度実行されないようにします。
$(document).ready(function(){
DuplicateHelper.SomeMethod1();
});
$(document).ready(function(){
DuplicateHelper.SomeMethod1();
});
$(document).ready(function(){
DuplicateHelper.SomeMethod1();
});
var DuplicateHelper = {
HasMethod1Run: false,
SomeMethod1: function() {
if (!this.HasMethod1Run) {
// do logic
this.HasMethod1Run = true;
}
}
}
編集
コードを動的に生成する場合は、コードにオブジェクト リテラルを使用する必要はありませんが、ブール値で同じ原則を使用できます。
var runCode = true;
$(document).ready(function(){
if (runCode) {
DuplicateHelper.SomeMethod1();
runCode = false;
}
});
$(document).ready(function(){
if (runCode) {
DuplicateHelper.SomeMethod1();
runCode = false;
}
});
$(document).ready(function(){
if (runCode) {
DuplicateHelper.SomeMethod1();
runCode = false;
}
});
ただし、この状況はソリューションのアーキテクチャの他の場所に問題があることを示しているという netbrain の意見に同意します。