(только для учебных целей) мы реализуем несколько функций JQuery и хотели бы знать, как обернуть код в IIFE («модуль»).Как обернуть этот JavaScript в Expression Expression Expression (IIFE), поддерживая тот же API?
Два метода JQuery мы пытаемся реализовать это addClass и removeClass, и мы должны быть в состоянии цепи этих методов.
В настоящее время наш код работает:
var FAQuery = function(selector) {
this.id = selector.replace('#','');
this.elem = document.getElementById(this.id);
this.addClass = function(className) {
this.elem.className = this.elem.className + className;
return this;
}
this.removeClass = function(className) {
this.elem.className = this.elem.className.replace(className, '');
return this;
}
return this;
}
, которая затем вызывается следующим образом:
FAQuery('#div3').addClass('pass').removeClass('fail');
Как бы мы идти о оборачивать это в IIFE?
Попробуйте: http://morning-challenge.herokuapp.com/20150519.html
Полный код с браузерная блок тестирует: http://git.io/vTcRL
Спасибо!
Что-то вроде этого: '(function() {this.FAQuery = function() {...};})();' – dfsq
Хм ... увидев этот вопрос, я собирался [ссылаться на это ] (http://dfsq.info/site/read/writing-your-own-jquery) как полунаправленный, но @dfsq уже был здесь :) –
Есть ли какая-то особая причина, по которой вы повторно компилируете this.elem в каждый метод вместо того, чтобы делать это один раз в начале? – hugomg