仕事のために更新する必要があるコード ベースを継承しました。実施されている閉鎖で彼らが何を達成しようとしているのかをゆっくりと学んでいますが、この機能を使用するサイトの一部を更新しようとすると行き詰まります. コードが達成しようとしていることの基本的な概要を説明し、誰かが助けてくれるかどうかを確認します。
var TheObject = (function (){
var veryLargeDependantData = {
var1: {},
var2: {},
var3: [],
//Set these variables via functions
function1: function f1(data){...},
function2: function f2(data){...},
initialize: function initialize() { //set values for var1... var3}
};
return {initialize: veryLargeDependentData.initialize};
})().initialize();
私は明らかにサイト上で製品コードを表示できないため、これを行う必要があります。しかし基本的に、veryLargeDependentData 変数は関数への入り口です。ページが読み込まれると、初期化関数が呼び出され、すべてが満足しています。しかし、これを古いページの onclick イベントに追加する必要があり、firebug コンソールに変数が未定義であると表示されます。他のページでは問題なく使用できています。
私の質問は、クロージャーがこのような呼び出し可能な名前空間の一部にならないようにする魔法が起こっているということです。私は少し JavaScript に疎いので、質問が間違っているように聞こえたらお詫びします。
onclick='TheObject.initialize();'