为了巩固已学的知识,同时为了方便记忆,准备写一个javascript(后面简称js)系列。
计划分为以下七节:
- 1.看一段代码
- 2.this用法
- 3.()()的用法
- 4.闭包
- 5.javascript对象
- 6.prototype的用法
- 7.回调函数
一共计划写这七节,每节的内容基本上都是参考其他人的总结以及我个人的理解完成,引用的内容会附上相关地址。
这篇作为第一节内容
先看一段代码:
(fuction(window){
var ll = (function(){
var ll = function(sel){
return new ll.fn.init(sel);
}
ll.fn = ll.prototype = {
constructor:ll,
selector:'',
init:function(sel){
selector = sel;
this[0] = document.getElementById(sel);
return this;
},
text:function(){
if(arguments.length>0){
this[0].innerText = arguments[0];
}
else{
return this[0].innerText;
}
},
css:function(obj){
for(name in obj){
this[0].style[name]=obj[name];
}
return this;
},
each: function( callback ) {
return ll.each( this, callback);
}
}
ll.fn.init.prototype = ll.fn;
ll.fn.ajax = ll.ajax = function(){
alert('ajax ...');
}
ll.each = function(object,callback){
for(name in object){
if((typeof object[name])=="object"){
callback.call({},object[name]);
}
}
return object;
}
ll.extend = ll.fn.extend = function(){
var obj = arguments[0];
var target = this.fn;
for(name in obj){
target[name] = obj[name];
}
}
//简单扩展
ll.extend({
log:function(str){
if(window.console!=undefined){
console.log(str);
}
},
show:function(){
alert(this.text());
}
});
return ll;
})();
window.ll = window.$ = ll;
})(window);
//扩展
$.fn.alert = function(){
alert(this.text());
}
如果你看过jquery源码,你可能会发现上面的代码跟jquery很像,确实是这样,为了看懂jquery源码,我看过很多内容才基本理解jquery这么创建的含义,如果直接拿源码来讲会很复杂,因而,我自己写的这段代码是一个极其简单的例子。
上面的代码只能针对id类型的元素进行操作,而且使用时,直接用id的值,不需要带#。
这段代码的功能很简单,但是涉及到的问题很多,有些js的基础知识如果不懂得,理解这段代码就很费解,所以列出这几节来讲js的基础知识。