zoukankan      html  css  js  c++  java
  • JavaScript 立即执行函数

    (function(){ ... }())
    
    (function(){ ... })() 
    // 只不过是把函数的引用调用换成了函数本身的调用,然后告诉Javascript引擎,圆括号前面的是函数表达式,而不是申明。
    避免Uncaught SyntaxError: Unexpected token
    var fn = function(){ ... } fn()

      以上两种方式是函数自执行的常见方式

    JavaScript 立即(自)执行函数:

    javascript 里没有私有作用域的概念,在大型项目里,函数或变量很容易被不小心覆盖掉,依据JS里作用域链(函数外部不能访问函数内部的变量,函数内部的子函数可以访问父级作用域的所有变量)的特性。用匿名函数作为一个“容器”,“容器”内部可以访问外部的变量,而外部环境不能访问“容器”内部的变量,所以 (function(){ ... })() 内部定义的变量不会和外部的变量发生冲突,俗称“匿名包裹器”或“命名空间”。

    jQuery 使用的就是这种方法,将 jQuery 代码包裹在 (function(window,undefined){ ...jquery代码...})(window) 中,在全局作用域中调用 jQuery 代码时,可以达到保护 jQuery 内部变量的作用

    匿名函数:使用 function 关键字声明一个函数,但未给函数命名,所以叫匿名函数,匿名函数属于函数表达式,匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包

    IIFE好处:

    一是不必为函数命名,避免了污染全局变量 

    二是IIFE内部形成了一个单独的作用域,可以封装一些外部无法读取的私有变量

    参考链接:https://www.jb51.net/article/127527.htm

    https://www.cnblogs.com/TomXu/archive/2011/12/31/2289423.html

  • 相关阅读:
    密码安全等级效果
    随机生成不区分大小写的验证码
    css3的box方法实现文本水平垂直居中
    echarts省市地图显示
    mysql 连接数据库
    mysql 高版本order by 报错解决方案
    mysql 命令行操作
    mac本地运行php文件
    js 获取url参数
    js 每三位数添加逗号
  • 原文地址:https://www.cnblogs.com/winyh/p/11133476.html
Copyright © 2011-2022 走看看