我如何制作一个像Backbone's、 使用jQuery

How do I make an extend method that works like Backbone's, using jQuery?

本文关键字:jQuery 使用 Backbone 何制作 一个      更新时间:2023-09-26

我想使用jQuery的扩展方法来创建一个这样做的方法:

var a = foo.extend({bar:'a'});
var b = new a({});
// b instanceof a => true

换句话说,我希望extend创建一个类。我该怎么做?

var foo = {};
foo.ext = function () {
    var Extended = function () {
         // do something with arguments
    }
    var args = Array.prototype.slice.call(arguments);
    args.unshift(Extended.prototype);
    $.extend.apply($, args);
    return Extended;
};
var a = foo.ext({bar: 'a'}, {baz: 2}, ...);
var b = new a({});