如何使用 jQuery 创建一个像 Backbone 一样工作的扩展方法?

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

我想使用 jQuery 的扩展方法来创建执行此操作的方法:

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

换句话说,我想extend创建一个class。 我该怎么做?

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({});