4

这看起来很简单,但我不知道如何扩展 $fn 命名空间。

JS:

(function ($) {
    $.fn.myorg.level1.level2.myFunction = function (usettings, params) {  
        return this.each(function () {
            //do work...etc
        });
    };
} (jQuery));

$("bla").myorg.level1.level2.myFunction(...);

如何定义命名空间链,以便我可以编写像上面这样的函数?

我给出的示例非常简单,命名空间不会很深,但是,我需要能够随意扩展和添加功能......等到我的命名空间树。我不想为我添加的每个附加功能/级别重新定义树。

我还没有看到任何好的例子。如果我保持在 $fn 级别,这很容易,但这并不能使我的代码像我需要的那样干净和可扩展。

如果我的要求是不可能的,那么正确的方法是什么?

4

1 回答 1

1

Epascarello 暗示了这一点,但我猜前面的对象没有定义。

console.log($.fn.myorg); // undefined

$.fn.myorg.level1 = function(){}; // TypeError: Cannot set property 'level1' of undefined

但如果我们先定义事物:

$.fn.myorg = $.fn.myorg || {}; // if this object doesn't exist, create an blank object
console.log($.fn.myorg); // object

$.fn.myorg.level1 = function(){};
console.log($.fn.myorg.level1); // function
于 2012-08-06T18:26:15.743 回答