2

据我所知,在当前项目中,开发人员使用 jQuery 扩展来处理命名空间。这有多糟糕?

var my = $.extend({}, {
    itemone: 0
}

$.extend(my, {
    init: function() {}
}

$(function() {
    my.init();
})();
4

1 回答 1

3

在您发布的简单示例代码中,您实际上并不需要使用$.extend,但总的来说,我不会说使用 jquery$.extend来帮助命名空间是“不好的”。请参阅这篇关于 javascript 命名空间模式的文章。

根据作者的说法,使用“扩展”或“深度对象扩展”被认为是一种高级命名空间扩展技术。使用 jQuery$.extend使这项技术相当容易,但可能会增加一定的开销。

我从未以这种方式使用过它,但在具有一些复杂/深度命名空间的大型应用程序中,使用$.extend可能会有所帮助。我不会加载 jquery 库只是为了使用它的扩展方法。

于 2012-11-06T05:42:20.400 回答