1

私はフロントエンド開発に不慣れで、今、社内の他の人が書いた多くの js コードを読んでいて、彼らがこの構文を使用して引数を保存することを発見しました:

function func1(argu1,argu2){
   this.argu1 = argu1;
   this.argu2 = argu2;
   // other code run here....
}

私にとっては、通常これをスキップして、コードで引数を直接使用するか、次のように n の変数を取得します。

function func2(argu1,argu2){
   alert(argu1);
   alert(argu2);
   var arguOne = argu1,arguSec = argu2;

  // other code run here...
}

では、なぜこの構文を使用して引数を格納するのかを尋ねたいと思いますか? これは良い習慣ですか?なぜですか? 知っておくべきいくつかの概念を見逃したことはありますか?

もはやフロントエンダーではなくなった私の同僚によって書かれたfiddleを参照してください....

4

2 に答える 2

2

最初の例では、 func1 を使用してオブジェクトを作成できます。これは実質的にクラス定義 (コンストラクター) です。次のように使用できます。

function func1(argu1,argu2)
{
   this.argu1 = argu1;
   this.argu2 = argu2;
}

var instance = new func1('a', 'b');
alert(instance.argu1);
alert(instance.argu2);
于 2012-07-15T13:44:39.510 に答える
1

殿下: 関数を定義して最後に呼び出す代わりに、クロージャを使用してみてください。関数定義はそのままにしておきますが、括弧で囲みます。

(function new_slider (arguments)
{
    //your code here
})('#new_slider',1500,150,10);

このようにして、関数が宣言され、同時に呼び出され、メインnew_slider関数内で定義されたすべての関数が引数にアクセスできます。this.argu1これらの値を保存するために使用する理由はまったくありません。どちらかといえば、悪い習慣と見なされるグローバル変数を作成します。

JavaScript でクロージャをググってください。非常に強力です。

于 2012-07-15T14:11:28.793 に答える