0

我所有的模型和支持模块都是命名空间的。目前我像这样初始化它们。我在某种 onload 上调用 initAll()。

MC 代表模型控制器,Su 代表支持。

/**
 **  initAll
 */

MC.initAll = function() {

    MC.MATweet.init();
    MC.MABAdder.init();

    MC.MASettings.init();

    MC.MUserTry.init();
    MC.MUserNew.init();
    MC.MUserExist.init();

    Su.UserOut.init();
    Su.Media.init();
}

显然,每个都有它自己的 init() 函数。我计划更新它以使用 hasOwnProperty 来检查 init 属性,如果存在则从那里调用它。这将使这个函数基本上成为一个循环......它检查命名空间。

还有其他方法...初始化模型。这是轻量级应用程序的好方法吗?

4

1 回答 1

0

一种方法是像这样循环所有模型,并在每个模型中检查属性 init。如果它在那里调用它。这使得初始化自动......你只需要在每个模型中定义它。

for ( var key in MC ) {
    if( MC.hasOwnProperty( key ) ) {
        if( MC[key].hasOwnProperty( 'init' ) ) {
            MC[key].init();
        }
    }
}
于 2012-08-05T21:50:48.810 回答