【问题标题】:How bad is using jQuery extend for namespacing?使用 jQuery 扩展命名空间有多糟糕?
【发布时间】:2012-10-26 00:46:03
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我不明白上面代码的目的。在最初的var my 声明中,您使用extend 将一个对象推送到一个空对象中,但是您正在定义要推送到其中的对象……何必呢? var my = { itemone: 0}..如果你想用另一个对象的属性来操作一个对象的属性,这就是 extend 的用途,否则,我看不出有什么理由打扰这个。 var my = {itemone:0} ... 稍后 ... my.init = function(){}.... 不需要扩展

标签: jquery namespaces


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2016-01-21
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 2013-01-22
    相关资源
    最近更新 更多