码迷,mamicode.com
首页 > Web开发 > 详细

js立即执行函数

时间:2016-07-04 11:53:11      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

  • js没有私有作用域的概念,避免命名冲突,引入了“匿名包裹器”或者“命名空间”的写法,即用匿名函数作为一个容器
  • js引擎在执行js代码时会“函数声明提升”,而函数表达式会从上至下逐行执行, js的函数和变量都会提升到函数的最顶部,即可以先使用再声明
    //在function前面使用(),!,+,-,= 可以将函数声明转换成函数表达式,消除了js引擎对函数声明和函数表达式的歧义
    (function(a){
        console.log(a);
    })(123);
    
    (function(a){
        console.log(a);
    }(1234));
    
    +function(a){
        console.log(a);
    }(12345);
    
    var fn = function(a){
        console.log(a);
    }(123456);

     

  • js里面函数内部可以访问上层作用域的变量,但外部不能访问内部的变量
  • var Lisener = {};
    (function(a){
        var in_fn = [];
        a.name = "Lucy";
        a.subscribe = function(m){
            in_fn.push(m);
            console.log(in_fn);
        }
    
        console.log(a);
    })(Lisener);
    
    ;(function(){
        //这个闭包函数内部可以访问全局变量Lisener,但不能访问in_fn
        for(var i = 1; i< 6; i++){
            Lisener.subscribe(i);
        }
    })();

     

  • DOM对象和jquery对象, (dom对象才能使用dom中的方法,jquery对象不可以使用dom中的方法)
  • 一般的话定义jquery对象用 $开头
    
    DOM对象     var domObj = document.getElementById("#id");
    jquery对象  var $jQeryObj = $("#id")
    jquery对象是通过jQuery包装DOM对象后产生的对象
    互相转换  var domObj1 = $jQeryObj[0] 或者 $jQeryObj.get(0)
              var $sr = $(domObj);

     

js立即执行函数

标签:

原文地址:http://www.cnblogs.com/leijiuling/p/5639730.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!