0

一般に、javascript の関数は、コードのブロックを 1 回の呼び出しで実行するために使用されることを理解しています。ただし、現在、多くの変数を定義する必要がある多くの関数を含むシステムで作業しているため、多くの繰り返しコードが表示されます。変数宣言を関数に入れたいので、それらが大量のスペースをとらないようにしたいのですが、それに似たようなことは可能ですか?

4

3 に答える 3

1

変数宣言を関数に入れたいので、それらが大量のスペースをとらないようにしたいのですが、それに似たようなことは可能ですか?

つまり:

function one() {
   var a, b, c, d, e, f;
   // ...
}
function two() {
   var a, b, c, d, e, f;
   // ...
}

(たとえば、各関数には独自の変数のコピーがあります。)

...そしてあなたが望む

// Doesn't work
function declare() {
   var a, b, c, d, e, f;
}
function one() {
    declare();
    // ...use a, b, etc. here
}
function two() {
    declare();
    // ...use a, b, etc. here
}

いいえ、それはできません。

同じ変数セットが複数の場所で使用されている場合は、変数をオブジェクトにカプセル化することを検討してください。実際、全体がオブジェクトとしてリファクタリングされる可能性があるように思えます。

しかし、あまりリファクタリングしなくても:

function declare() {
    return {
        a: /*...*/,
        b: /*...*/,
        c: /*...*/,
        d: /*...*/,
        e: /*...*/,
        f: /*...*/,
    };
}
function one() {
    var o = declare();
    // ...use o.a, o.b, etc.
}
function two() {
    var o = declare();
    // ...use o.a, o.b, etc.
}

しかし、繰り返しになりますが、これは影響を最小限に抑えるソリューションです。物事をオブジェクトに少し整理できるという考えでコード全体を見ると、上記よりも人工的でない方法が見つかるようなものです。

于 2013-07-26T18:03:21.507 に答える
0

あなたが何をしたいのかを正しく理解していれば、おそらく手動で実行しない方がよいでしょう。uglify や Google の Closure Compiler などのミニファイヤを使用できます。これらのツールを使用すると、JS ファイルのサイズを大幅に最適化し、元のコードを読みやすく保つことができます。

于 2013-07-26T17:58:34.020 に答える