1

追跡用のオブジェクト TRACK があるとします。

TRACK = {};
TRACK.pageName = pageName || TRACK.buildPageName();

その前にこれがどこかにあれば、これはうまくいきます:

var pageName = "Home";

これを修正する方法を次のように仮定しましょう。

TRACK.pageName = (typeof pageName != 'undefined' ? pageName : TRACK.buildPageName());

大きなjavascriptオブジェクトでこれを行うためのより良い方法はありますか?

4

3 に答える 3

0

ブラウザを使用しているwindow.pageName場合は、pageNameの値を確認できます。

TRACK.pageName = window.pageName !== undefined ? pageName : TRACK.buildPageName();

しかし、それは実際には「より良い」実践ではありません。これを行うための2番目の方法です。使用typeofも問題ありません。

于 2012-12-10T11:55:51.470 に答える
0

あなたの例:

TRACK.pageName = pageName || TRACK.buildPageName();

は正しいですが、ここでキャンプしたい場合は、それundefinedを行う方法があります:

if (pageName !== undefined){...}
于 2012-12-10T11:56:49.460 に答える
0

TRACK.buildPageName() 内にこの if ステートメントを実装できると思います。pageName がグローバル変数の場合、TRACK.buildPageName() 内からアクセスできます

{
...
    buildPageName: function() {
        this.pageName = (typeof pageName != 'undefined' ? pageName : TRACK.innerBuildPageName());
    }
}

これにより、この if 文を 1 回だけ非表示にして実装できます。

于 2012-12-10T11:58:46.610 に答える