2015-03-19 4 views
-3

Я хотел бы использовать метод расширения JQuery, чтобы создать метод, который делает это:Как создать метод расширения, который работает как Backbone's, используя jQuery?

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

Другими словами, я хотел бы extend создать класс. Как это сделать?

+0

Вы изучали исходный код? Это ваша первая остановка для подобных вещей. Кроме того, я думаю, что это где-то описано в Effective Javascript. – jcollum

+1

Backbone использует Underscore, и я хочу использовать jQuery. –

+0

Это плохой вопрос, но нет необходимости держать его в стороне. – nick

ответ

2
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({}); 
Смежные вопросы