私がやりたいのは、javascript をロードしてオブジェクトにメソッドのライブラリを作成し、オブジェクトが実際に定義またはコンパイルされる前に、そのオブジェクトが初めて使用されるまで待機することです。このオブジェクトが実際に完全に定義される前に、このオブジェクトへの参照を作成したいと考えています。オブジェクトのメソッドが定義される前に初めてこのオブジェクトのメソッドを呼び出すとき (つまり、オブジェクトに実際にはメソッドがないことを意味します)、オブジェクトを定義してからメソッドを呼び出したいと思います。オブジェクトで「sayHello()」がまだ定義されていない場合、「MyLibrary.sayHello()」などの標準構文を使用してこれを行う方法はありますか。次のようになると思います。
var independentVar = "noCommitments";
var MyLibrary = function(user_ini){
//MyLibrary.init looks like
// (function(ini){
// var a = ini;
// return function(){
// //Notice the method sayHello defines when called,
// // and does not return a reference
// return {
// b:a,c:"c",sayHello:function(z){return "Hello"+a+z}
// }
// }
// })(user_ini);
var d1 = myRequire("MyLibrary.init");
return {
**handleAll : function(){ this = d1(); this.("**calledMethod")}
}
};
var greeting = MyLibrary.sayHello();
alert(greeting);
これは単なる疑似コードです。クリーンアップにメソッドを追加すると、そのオブジェクトを "{**handleAll:function(){/ noContext " の初期化されていない状態に戻すことができます/}}」。私のアプリケーション/ライブラリには、このようにスタブとリンクがあり、未定義の状態からすぐに使用できます。モジュールを構築するときに、これはユーティリティへの参照の数を減らすために役立ちます。機能のメニューとそれらの機能はすべての投稿で共有されます -- ここで説明されているようなメカニズムでは、「アクティブな投稿」/「フォーカスされた投稿」のみがユーティリティを参照します。 -activate modules. 特別な部分は、モジュールが既にウォームアップされており、まだ参照されていなくても関数を呼び出す準備ができていることです。これはライブ バインディングに似ていますが、ユーザー インターフェイス全体を既にスタブ化された関数で定義することができます。それらが使用可能になったときの正確な名前で出力します。デフォルトとデバウンスの制御メカニズムは、このモデルで簡単に見つけることができます。
私の質問は次のとおりです。このタイプのスクリプトはネイティブで可能ですか、それとも TypeScript、CoffeeScript などの何らかの形式のコンパイルを使用する必要がありますか。呼び出したいメソッドをパラメーターとしてシングルトンファクトリーに渡せば可能だと理解しています。最終的には、コードを汚染することなく、使用されていない機能を適切に低下させることができるアプリケーション全体が必要です。
汚染とは:
var LibDef = (
function(){
return {
callUndefined:function(methodName){
var returnVal = {}
}
}
})()
var MySingltonLibrary = moduleSinglton.getLibrary("MyLibrary", Lib);
var greeting = MySingltonLibrary.callUndefined("sayHello");
//
// Please use your imagination to consider the complexity in the singlton