• 匿名函数自执行


       在看bootStrap插件的时候发现这种写法

     !function(){}这种写法,不解,后来看到网上的文章才知道,这是匿名函数的一种写法

        1. 什么是自执行的匿名函数?
        它是指形如这样的函数: (function {// code})();

        2. 疑问
        为什么(function {// code})();可以被执行, 而function {// code}();却会报错?

        3. 分析
        (1). 首先, 要清楚两者的区别:
        (function {// code})是表达式, function {// code}是函数声明.
        (2). 其次, js"预编译"的特点:
        js在"预编译"阶段, 会解释函数声明, 但却会忽略表式.
        (3). 当js执行到function() {//code}();时, 由于function() {//code}在"预编译"阶段已经被解释过, js会跳过function(){//code}, 试图去执行();, 故会报错;
        当js执行到(function {// code})();时, 由于(function {// code})是表达式, js会去对它求解得到返回值, 由于返回值是一 个函数, 故而遇到();时, 便会被执行.

       另外, 函数转换为表达式的方法并不一定要靠分组操作符(),我们还可以用void操作符,~操作符,!操作符……

    如:

    !function(){  
      alert("另类的匿名函数自执行");   
    }();
     
  • 相关阅读:
    jQuery获取Select选择的Text和 Value(转)
    android学习---EditText
    android学习---Activity
    android学习---LinearLayout
    android学习---布局Layout
    android颜色码制表
    java面试题二
    java面试题一
    基本排序算法java实现
    Integer与int的区别
  • 原文地址:https://www.cnblogs.com/yanypan/p/3191077.html
Copyright © 2020-2023  润新知