浅谈javascript中Json方式与闭包式

闭包方式:
   var Person = function()
   {
 this.init = funtion()
     { initDom();
       initEvent(); 
             }
 
 function initDom ()
 {}
 
 function initEvent()
 {}  
   }

//使用时
var per = new Person();
per.init();
闭包,就是要实现非侵入DOM脚本编程,关于非侵入DOM脚本编程优势大家可以网上查.关键看起来更像是一个类与对象概念,很好实现了私有方法与共公方法隔离。如果我们不需要它在被new时执行,定义后就执行完全可以匿名它,就是一个单例

(function(){
   function initDom(){}
   function initEvent() {}
   return{
      init:function(){initDom();initEvent(); } 
 }  
})();
如果是带参数的 如何做?
(function(k,m){
   function initDom(){alert(k);}
   function initEvent() {alert(m);}
   initDom();
   initEvent();
  
})(11,12);
*在函数声明后面加上括号就表示创建完成后立即进行函数调用

Json格式:

var Person = {init:function(){},initDom:function() {},
  initEvent:function() {} };
访问Person.init(),我们不能new它出来。因为Person本身已经是Object了

考虑以下:
alert(typeof(Function))); 
alert(typeof(new Function())); 
alert(typeof(Array)); 
alert(typeof(Object)); 
alert(typeof(new Array())); 
alert(typeof(new Date())); 
alert(typeof(new Object())); 
前四个显示function 后三个是object,Json本身是object了,而指定一个function的变量是可以被new的

*Function 与function 可以理解为 function是一个 New Function 的实例
*而var fun = new function() 可以理解为fun是一个指向变量
 Json格式也被可以构造成一个类方式,就需要prototype,这个以后讨论


 

posted @ 2011-04-12 11:11  一点点水  阅读(362)  评论(0编辑  收藏  举报