`
20032334
  • 浏览: 35292 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript中的自执行匿名函数

阅读更多

格式:
      (function(){
          //代码
        })();
解释:这是相当优雅的代码(如果你首次看见可能会一头雾水:)),包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数。
来个带参数的例子:
        (function(arg){
           alert(arg+100);
        })(20);
        这个例子返回120。
重要用途:可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许。
       (function(){
           function $(id){
                return document.getElementById(id);
           }
           function __addClass(id,className,classValue){
                $(id).style.className=classValue;
           }
           window['mySpace']={};
           window['mySpace']['addClass']=__addClass;
        })();
上面的例子就可以用这种伪命名空间封装并保护自己的所有函数、对象和变量。而且,由于它们位于同一个函数中,所以可以互相引用。为了对受保护的代码进行全局化,随后的一对括号告诉浏览器立即执行返回的匿名函数,而且在执行期间将__addClass()赋值给了window的一个方法,这样在外部只能执行addClass而__addClass被保护起来了。我可以这样调用它:mySpace.addClass('oneId','font-width','bold');

评论
2 楼 gwh_08 2012-04-13  
gwh_08 写道
兄弟,对style的设置那个好像有问题吧
  function __addClass(id,className,classValue){
                $(id).style.className=classValue;
           }
添加名字为className的样式,的写法这样些 $(id).style.className设置不到,无法完成将值className传递给$(id).style.className中的className,如果alert($(id).style.className)会弹出"undefined",正确的写法应该是$(id).style[className]=classValue;

补充:
而且,当样式涉及到连接符号“”时,首字母应该变为大写,去掉连接符号。以'font-width'为例,应该变为'fontWidth'否则为无效样式。
1 楼 gwh_08 2012-04-13  
兄弟,对style的设置那个好像有问题吧
  function __addClass(id,className,classValue){
                $(id).style.className=classValue;
           }
添加名字为className的样式,的写法这样些 $(id).style.className设置不到,无法完成将值className传递给$(id).style.className中的className,如果alert($(id).style.className)会弹出"undefined",正确的写法应该是$(id).style[className]=classValue;

相关推荐

    Javascript自执行匿名函数(function() { })()的原理浅析_.docx

    1. **模块封装**:利用自执行匿名函数可以创建模块化的JavaScript代码,有效地管理代码中的依赖关系。 2. **闭包的创建**:自执行匿名函数经常与闭包结合使用,以创建私有变量和方法,提高代码的安全性和封装性。 3....

    Javascript的匿名函数

    ### JavaScript中的匿名函数 在JavaScript编程语言中,**匿名函数**是一种非常实用且常见的特性,它们没有具体的名称,通常作为参数传递给其他函数或者在需要函数作为值的地方使用。这种类型的函数可以增加代码的...

    深入理解Javascript中的自执行匿名函数

    还可以在自执行匿名函数中传递参数,如下: ```javascript (function(arg){ alert(arg+100); })(20); ``` 在这段代码中,`20` 是传递给函数的参数,函数体内的 `arg` 就是指代这个参数的变量。执行这段代码的结果是...

    Javascript的匿名函数讲解

    匿名函数是JavaScript语言中的一个强大特性,它允许我们不给函数命名,直接声明并执行。在本文中,我们将深入了解匿名函数的定义、特点、代码模式以及应用。 首先,需要明白什么是匿名函数。在JavaScript中,定义...

    javascript 闭包、匿名函数、作用域链

    JavaScript中的闭包、匿名函数和作用域链是编程中至关重要的概念,它们是理解JavaScript运行机制的关键。在本文中,我们将深入探讨这三个概念,并通过实际示例来展示它们的运用。 首先,我们来讨论“闭包”。闭包是...

    匿名函数的一点知识

    综上所述,匿名函数在JavaScript中扮演着至关重要的角色,不仅可以用于创建立即执行的代码块,实现作用域隔离,还可以作为参数传递、实现回调机制,甚至用于封装私有和公共功能,提高代码的封装性和安全性。...

    (转载)JavaScript中匿名函数,函数直接量和闭包.docx

    在JavaScript中,匿名函数、函数直接量和闭包是三种非常重要的概念,它们在编程实践中有着广泛的应用。让我们逐一深入探讨这些概念。 1. **匿名函数**: 匿名函数是指没有名字的函数,通常作为表达式的一部分存在...

    JavaScript 匿名函数和闭包介绍

    在讨论JavaScript编程语言时,匿名函数和闭包是两个重要的概念,它们在函数式编程和模块化代码设计中扮演着核心角色。匿名函数是没有具体名称的函数,它们可以是独立的,也可以是表达式的一部分,通常用于定义临时...

    深入研究JavaScript的匿名函数.doc

    JavaScript中的匿名函数是一种没有明确标识符的函数表达式,它可以在需要时被立即执行或作为其他数据结构的一部分使用。在JavaScript中,函数是第一类对象,这意味着它们可以被赋值给变量、作为参数传递和作为其他...

    JavaScript中匿名函数的用法及优缺点详解_.docx

    }()`,这三种方式在JavaScript中等效,常用于立即执行匿名函数。 4. 匿名函数的应用场景: - 模块化:通过匿名函数,配合var关键字,可以创建私有作用域,避免全局变量污染,如YUI和其他JavaScript库中广泛使用。...

    Javascript自执行匿名函数(function() { })()的原理浅析

    匿名函数指没有指定函数名或指针的函数,自执行匿名函数只是其中一种,下文中称这种函数为:自执行函数  下面是一个最常见的自执行函数: // 传统匿名函数 (function() { alert('hello'); })();  这段...

    javascript强制函数自动执行.pdf

    ### JavaScript中的函数声明与函数表达式 在JavaScript中,函数是一种非常重要的编程构造,它可以被定义为函数声明或函数表达式。这两种定义方式各有特点,并且在不同的上下文中有着不同的行为。 #### 函数声明...

    javascript笔记之匿名函数和闭包.docx

    在JavaScript中,匿名函数是一种没有名称的函数,通常作为参数传递或者用于立即执行。在上述文档中,我们看到几种不同的匿名函数使用方式: 1. **匿名函数自执行**:`(function(){})()`,这种写法会立即执行该匿名...

    javascript笔记之匿名函数和闭包

    在自执行匿名函数中,括号`()`用于立即执行该函数表达式。 接下来,我们深入探讨闭包。闭包是一种特性,它允许一个函数访问并操作其外部(包含它的)函数的变量,即使在其外部函数已经执行完毕后。创建闭包的常见...

    JavaScript中匿名函数的用法及优缺点详解_.pdf

    - 函数字面量模式:创建并立即执行匿名函数,如`(function(){ alert(1); })();` - 优先表达式/void操作符模式:确保函数被立即执行,同时避免产生副作用,如`(function(){ alert(2); }())` 或 `void function(){ ...

Global site tag (gtag.js) - Google Analytics