javascript代码实例教程-javascript自执行匿名函数

发布时间:2018-12-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-javascript自执行匿名函数脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。

概念分析

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会去对它求解得到返回值, 由于返回值是一 个函数, 故而遇到();时, 便会被执行.

 

自执行匿名函数:
  • 常见格式:(function() { /* code */ })();
  • 解释:包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数。
  • 作用:可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许(变量前加上window,这样该函数或变量就成为全局)。各JavaScript库的代码也基本是这种组织形式。总结一下,执行函数的作用主要为 匿名 和 自动执行,代码在被解释时就已经在运行了。因为js是函数作用域,所以如果想实现某个功能又不想污染全局变量的时候,会用这个自执行的匿名函数,常见于jquery插件。

     

    自执行函数写法

    (function () { /* code */ } )();
    !function () { /* code */ } ();
    ~function () { /* code */ } ();
    -function () { /* code */ } ();
    +function () { /* code */ } ();

    例子

    var data= {?? ?
    ??? table : [],?? ?
    ??? tree : {}?? ?
    };?? ?

    (function(dm){?? ?
    ??? for(var i = 0; i < dm.table.rows; i++){?? ?
    ?????? var row = dm.table.rows[i];?? ?
    ?????? for(var j = 0; j < row.cells; i++){?? ?
    ?????????? drawCell(i, j);?? ?
    ?????? }?? ?
    ??? }

    })(data);? //看过去是不是很熟悉,那就对了,跟jquery的插件的写法如出一辙。

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-javascript自执行匿名函数全部内容,希望文章能够帮你解决javascript代码实例教程-javascript自执行匿名函数所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: