我正在尝试创建一个像jquery这样的javascript库。我得到了如何创建一个普通的库:
var lib=lib||(function () {
function privateFunction (alert ("hi");){};
return {
exampleAlert: function(input){
alert(input);
}
}
})();
这样称呼它:
lib.exampleAlert ("test");
这就像jquery
$.ajax(stuffhere);
我的问题围绕着jquery。它可以调用dom,如$('。class')。hide(),并具有$ .ajax(stuffhere)等函数;在同一个图书馆。我怎样才能执行dom调用和常规函数调用,如上例库中的ajax调用?
提前致谢!!搜索的日子比我想承认的还多。
答案 0 :(得分:0)
DOM在这里无关,它只取决于jQuery的实现
如果您询问同时进行lib()
和lib.func()
调用,则可以执行以下操作以同时支持这两种函数类型:
var lib = function(sel) {
return {
object: document.querySelector(sel),
text: function(val) {
if (val === undefined) {
return this.object.innerText;
} else {
this.object.innerText = val;
}
}
};
};
lib.ajax = function() {
console.log("AJAX imitation");
};
现在,您可以同时执行这两项操作:
lib("body").text("hi"); // jQuery-style setter
var text = lib("body").text(); // jQuery-style getter, returns "hi"
和
lib.ajax();
jQuery以完全相同的方式工作,但复杂程度要高出一百倍。