0

現在、次のパターンを使用して、使用するJSモジュールを作成しています。しかし、最初のスタイルと2番目のスタイルでそれを行うことに違いや利点があるかどうかはわかりません。

第一の方法

var UI = UI || {};
(function () {
var BtnShape = function (x, y, width, height, size, color, text)
{
    this.initialise(x, y, width, height, size, color, text);
}
var p = BtnShape.prototype;

    p.isEnabled = false; //<--------------
    p.initialise = function (x, y, width, height, size, color, text)
    {}
UI.BtnShape = BtnShape;
})();

2番目の方法

var UI = UI || {};
(function () {
var BtnShape = function (x, y, width, height, size, color, text)
{
    this.initialise(x, y, width, height, size, color, text);
}
var p = BtnShape.prototype;

    p.initialise = function (x, y, width, height, size, color, text)
    {
            this.isEnabled = false; //<---------------
    }
UI.BtnShape = BtnShape;
})();
4

3 に答える 3

3

1番目の方法:電話をかけたかどうかに関係なく、にisEnabledなります。falseinitialise()

2番目の方法:電話をかけたisEnabled場合falseのみinitialise()、それ以外のundefined場合。

于 2012-12-06T17:05:59.737 に答える
3

ここで確認できる唯一の違いは、isEnabledプロパティが設定されている順序です。isEnabledプロパティを初期化関数にネストすることにより、が値を持つinitalise前にプロシージャを実行する必要がありisEnabledます。何かをする前に初期化関数を実行すると思いますが、実行しないisEnabledと空になります。

于 2012-12-06T17:07:42.920 に答える
1

最初の方法では、デフォルトでは有効になっていません(ただし未定義ではありません)

// After all your code
var x= BtnShape.prototype;
// Here x is not enabled . If you want to enable it, you need to do it separately like below.
p.isEnabled = true;

2番目の方法では、オブジェクトを初期化すると、デフォルトでfalseになります。初期化しない限り、初期化するとダイヤルされます。別途有効にする必要があります。

var y =BtnShape.prototype;
// Here if you don't initialize the object y, then isEnabled is undefined. 
于 2012-12-06T17:12:57.507 に答える