2011-07-18 11 views
-1

私は2つのJavaScriptのメソッド(imports、およびnamespace)を持っている imports文字列引数(例。imports("com.x.y.MyClass"))に乗り、stringに基づいて、それは相対パスを作成し、スクリプト(type = text/javascript)としてタグを頭にそれを追加します。 imports私のプロジェクトのメインページのjavascriptファイルを添付することができます。我々は、それが機能MyClassを検索し、それが存在する場合はそれを呼び出すvar clssObj = new com.x.y.MyClass(param1, param2)を呼び出す場合 javascript関数の変数に外部変数を挿入することはできますか?

namespace

は2〜3 PARAMATERS(例えば。 namespace("com.x.y", "MyClass", "google.maps.Marker")または namespace("com.x.y", "MyClass")

を取ることができます。

imports("com.x.y.HelperClass1"); 
imports("com.x.y.HelperClass2"); 
imports("com.x.z.OtherClass"); 
namespace("com.x.y","MyClass","MyBaseClass").Class = function(){ 

var ... 
.. 
.; 
function privateFunc(){ 
    this.baseclassFunction(); \\ since Myclass is a prototype of MyBaseClass 
    var otherClass = com.x.z.OtherClass(); 
} 

this.publicFun = function(){ 
    privateFunc(); 
}; 
this.MyClass = function(param1, param2){ 
    this.base();// calling base class costructor 
    var helperObj1 = com.x.y.HelperClass1(); 
    var helperObj2 = com.x.y.HelperClass2(); 
}; 
}; 

インポートしたすべてのクラスをMyClassプライベート変数として追加することはできますか? Javaではcom.x.y.HelperClass2の代わりにHelperClass2のみを使用します。

答えて

1

免責事項:この "インポート"と "名前空間"のビジネスが何であるかわかりません。これらはどちらもJavaScriptのネイティブな概念ではないため、問題文で指定されていないライブラリによって提供される必要があります。

あなたは、オブジェクトのプロパティを指すローカル変数を簡単に作成できます。そうすることで、簡単に表記法を作成できます。例:

function privateFunc(){ 
    var OtherClass = com.x.z.OtherClass; 
    this.baseclassFunction(); // since Myclass is a prototype of MyBaseClass 
    var otherClass = OtherClass(); 
} 

(私は考えることができるすべてをリストの利益のために)別のオプションwithを使用することです:

function privateFunc(){ 
    this.baseclassFunction(); // since Myclass is a prototype of MyBaseClass 
    with (com.x.z) { 
     var otherClass = OtherClass(); 
    } 
} 

しかしwithは、一般的にJavaScriptで悪い習慣と考えられています。私はあなたにそれを認識させ、あなたがそれを使用するのを避けるように促すためにここにそれをリストアップしています。

希望すると便利です。

+0

混乱して申し訳ありません。インポートと名前空間は私自身の関数です。名前空間はその引数を使用してjava comのようにcom.x.y.MyClass = function(){}のような関数を作成します.xとyはフォルダです。 importはその引数com.x.y.Myclassを "javascript/x/y/MyClass.js"に変換します。私はjavaで記述したコードを書くのに役立つメソッドを作成しようとしています。私は、ファイルの関数のプライベート変数(例:MyClass)として、すべてのインポートされたjavascript関数を作成する以外はすべてを行うことができます。 – Anoop

関連する問題