JavaScript コードの最適化に関するGoogle 開発者の記事では、「クラス メソッドの定義」セクションで、prototype を使用して関数 (JavaScript ではオブジェクトと見なされる) にプロパティとしてメソッドを追加することを推奨しています。
たとえば、関数コンストラクタ本体内でメソッドを次のように定義する代わりに、次のようにします。
baz.Bar = function() {
// constructor body
this.foo = function() {
// method body
};
}
メソッドは、次のようにプロトタイプを使用して定義する必要があります。
baz.Bar = function() {
// constructor body
};
baz.Bar.prototype.foo = function() {
// method body
};
しかし、クラス メソッドを追加し、d3.js などのフレームワークで使用される再利用可能な JavaScript コードを作成して、JS クロージャーに基づくコア メソッドを実装する別のアプローチを見てきました。たとえば、次のようになります。
var nameSpace = {};
nameSpace.myModule = function(module){
var myVar = '';
function exports(){
}
//getter and setter for myVar
exports.myVar = function(_x){
if(!arguments) return myVar;
myVar = _x;
return this; // to allow for method chaining
}
exports.method1 = function(){
//do something
}
exports.method2 = function(){
//do something
}
return exports;
}
and then to use the module:
var test = nameSpace.myModule();
test.method1();
この最後のアプローチは、JavaScript コードのパフォーマンスと再利用に対する答えになるでしょうか。
よろしくお願いします モハメド・アリ