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

来源:互联网 发布:印刷品制作软件 编辑:程序博客网 时间:2024/04/30 19:36

为了巩固已学的知识,同时为了方便记忆,准备写一个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的基础知识。