通过一段代码学习javascript基础知识系列

为了巩固已学的知识,同时为了方便记忆,准备写一个javascript(后面简称js)系列。


计划分为以下七节:


  • 1.看一段代码
  • 2.this用法
  • 3.()()的用法
  • 4.闭包
  • 5.javascript对象
  • 6.prototype的用法
  • 7.回调函数


一共计划写这七节,每节的内容基本上都是参考其他人的总结以及我个人的理解完成,引用的内容会附上相关地址。


这篇作为第一节内容


先看一段代码:

(function(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的基础知识。


你可能感兴趣的:(JavaScript,源码,对象,闭包,扩展)