Я понимаю, что я могу расширить jQuery в двух формах:
1)
jQuery.fn.extend({
variation1: function(){
...
}
});
I use this like $(selector).variation1();
2)
и пользовательская функция
jQuery.variation2 = {
something: function(){
var execute = function(){
...
}
}
}
I use this like $.variation2.something()
Мои вопросы:
var jsclass= new Class ({Реализации: [Параметры], опции: {}, initialize: function (options) {this.setOptions(options);}});
мы называем это, и инициализируем с помощью пользовательских параметров, таких как
новый jsClass ({option1: this, option2: that})
Таким образом, в примере MooTools экземпляр класса по умолчанию выполняет опции. Возвращаясь к вопросу, есть ли способ сделать подобное в jQuery?
заранее спасибо
Эти два варианта различны, как вы заметили. jQuery.fn
предоставляет набор функций, которые применяются к объекту QuerySet
jQuery (результат применения селектора jQuery). jQuery.*
можно просто рассматривать как глобальные статические объекты, включая (иногда) функции, доступные для всех, у кого есть доступ к объекту jQuery.
Чтобы инициализировать вариант 2, я бы сделал что-то вроде:
jQuery.variation2 = (function() {
var a = ...;
var b = ...; // other initialization
return {
something: function() {
...
}, ...
};
})();
Вы можете использовать блокировки аналогичным образом, чтобы обеспечить инициализированный код.
{ ... }
вы возвращаете, я полагаю.