Javascript 用对象扩展$.fn的jQuery?

Javascript 用对象扩展$.fn的jQuery?,javascript,jquery,object,Javascript,Jquery,Object,使用此方法可以获得类似于$('.selector').Group.Method()的内容和$('.selector').Group.Method2() 现在我有一个主要的剧本 function Forty() {}; var Forty = new Forty(); (function(site) { $.extend(Forty, { getBaseUrl: function(extra) { extra = typeof extra !==

使用此方法可以获得类似于
$('.selector').Group.Method()的内容
$('.selector').Group.Method2()

现在我有一个主要的剧本

function Forty() {};

var Forty = new Forty();

(function(site) {
    $.extend(Forty, {
        getBaseUrl: function(extra) {
            extra = typeof extra !== 'undefined' ? extra : '';
            return Forty.get('baseUrl') + extra;
        },
        get: function($what) {
            return site[$what];
        }
    });
})(site);
随后在该文件中,我有:

$.extend(Forty, {
    flyOut: function() {
        $(this).on('click', function() {
            $('html').toggleClass('nav-open');
        });
    }
});
最后,我有:

$.fn.extend({Forty: Forty});
就在我说这句话之前:

$('.selector').Forty.flyOut();
所以我真的想要类似于
$('.selector').four.flyOut()的东西


这样的事情可能吗

我设法解决了这个问题,方法是:

var Forty = {fn:{}};

$.fn.extend({Forty: function() {return $.extend(this, Forty.fn);}});
然后像这样分配我自己的函数:

Forty.fn.flyOut = function() {
    $(this).on('click', function() {
        $('html').toggleClass('nav-open');
    });

    return this;
}
并且像这样使用它们:

$('.js-toggle-nav').Forty().flyOut();

这似乎很有效

是的,但您可能必须重构代码。谷歌需要的词是“链接”wrt jQuery插件
是一个非常非常糟糕的主意。不,Prototype就是这样,jQuery也是这样吗?