1

そのため、関数を宣言するさまざまな方法を見つけようとしています...そして、メモリ使用量を減らすための最良の方法は何ですか...

私が行ってきた方法は、私が推測している方法#4であり、ATROCIOUSです。私は基本的にさまざまな " function XYZ(){ //stuff }" の束を作成し、それを呼び出してアクションを実行しています...多かれ少なかれ、すべてのコードを整理して整理する方法です...パフォーマンス、メモリ、または技術的な理由のためではありません.. . 誰でも参加して、どの方法が最適か説明できますか? (または独自の方法がある場合は投稿してください)そしてその理由は?

//method 1
var sayHey = new Object();
    sayHey.derp = 'derp';
    sayHey.herp = function(){
        alert('herp');
    };

//side question: would this.derp = 'derp' be the same as sayHey.derp? if so, would it be better to use this rather than sayHey?


//method 2
var sayHey2 = function() {
    return {
        derp : 'derp',
        herp : function(){
            alert('herp');
        }
    }
}();

//method 3
var sayHey3 = {
    derp: 'derp',
    herp: function(){
        alert('herp');
    }
};

//method 4
var derp = 'derp';
function herp(){
    alert('herp');
}
4

1 に答える 1

1
  • 方法 1 と 3は同じです。オブジェクトを作成するさまざまな方法。

  • 副次的な質問: オブジェクトから直接メソッドを呼び出したかどうかですthis.derp"derp"言い換えれば、あなたがそうするならthis.herp()、関数の中はあなたの thisオブジェクトになります。herp()sayHey

  • 方法 2も同じですが、作成された変数スコープを特に使用しない不要な関数呼び出しがあることを除きます。メソッドderpを介してのみアクセスできるように、オブジェクトのプロパティの代わりに関数内にローカル変数を作成できます。herp()これにより、変数がある程度保護されます。

  • 方法 4はローカル関数を作成しているため、オブジェクトで直接取得していません。それぞれに異なるユースケースがあります。

于 2013-03-08T19:16:33.863 に答える