Я пытается создать создать собственную небольшую jQuery-подобную библиотеку, но у меня очень тяжелое время с созданием этого шаблона цепочки. В основном у меня есть один класс с кучей методов, которые облегчают манипулирование документом. Вот примерJavascript: object return self a.k.a. chaining
function MF(selector){
var DO; // Stands for DocumentObject
this.select = function(selector){
return document.getElementById(selector);
}
if(typeof selector === 'string'){
DO = this.select(selector);
}else if(selector instanceof HTMLElement){
DO = selector;
}
this.children = function children(selector){
return DO.getElementsByClassName(selector);
}
return {
MF: ???
}
}(null);
Я мог бы быть неправильно в своих размышлениях, но то, что я пришел, чтобы выяснить, что для того, чтобы иметь дополнительные методы для объекта документа (HTML элемент) I необходимо либо продлить HTMLElement прототип или передать элемент вместе с моим классом. Я выбрал второй вариант. Я просто не могу понять, что вернуться в мой класс, чтобы я мог цеплять. То, что я просто стремиться, ради этого примера, чтобы иметь возможность написать следующую строку кода:
MF('someDiv').children('someClass');
В отчаянной попытке я попытался возвращающая новый экземпляр MF
, который не должен иметь экземпляры, по умолчанию и привело к бесконечному циклу. Я действительно не могу понять, что я должен туда вернуться. Любая помощь очень ценится!
Подсказка: 'MF ('someDiv')' должен возвращать объект и методы, которые не возвращают ничего другого (в отличие от '.children'), должны возвращать' this'. –