zoukankan      html  css  js  c++  java
  • 浅谈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,这个以后讨论


     

  • 相关阅读:
    字符串与Unicode码的相互转换
    关于es6中的yield
    ajax请求中的6个全局事件
    用H5上传文件
    类型化数组
    git笔记-9-29
    js正则表达式验证身份证号和密码
    assertThat用法
    java产生随机数的几种方式
    jQuery之Deferred对象详解
  • 原文地址:https://www.cnblogs.com/shouhongxiao/p/2013424.html
Copyright © 2011-2022 走看看