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();

但这并不是真正的“更好”的做法。这只是第二种方法。使用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 语句一次。

于 2012-12-10T11:58:46.610 回答