`
fangzhouxing
  • 浏览: 213366 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

突然理解了JavaScript自调用函数的用处

阅读更多

JavaScript自调用函数(self-invoking function)的例子,可以参见这里

我原来的程序是这样写的,使用了所谓的“单件对象 ”(Singleton object)的设计模式:

Divo = function() {
    return {
    init : function() {
      //这里执行所有初始化功能
    }
}()

Divo.init()

现在,改用自调用函数方式,写成这样:

(function() {

    //这里执行所有初始化功能

})();

好处:
原来的做法中,Divo 对象中 init 函数一直存在,显然会占用内存(这一点我原来没有意识到)。
当然,你也可以在执行 Divo.init() 后,做 delete Divo.init。

因为在整个应用程序生命周期中, init 函数只需要执行一次,所以自调用函数是最简洁的一种写法。

 

 

 

分享到:
评论
1 楼 风雪涟漪 2008-12-25  
很不错,从实际出发了。。这个函数写法就是为了初始化。 学习了

相关推荐

    深入认识JavaScript中的函数

    - **动态性**:可以动态创建和调用函数。 #### 三、函数的创建方式详解 在JavaScript中,可以通过多种方式创建函数: ##### 3.1 使用`function`关键字 这是最常见的函数定义方式,它允许为函数指定一个名字,方便...

    Babel插件用于带任何函数调用

    标题 "Babel插件用于带任何函数调用" 指的是在JavaScript开发过程中,使用Babel这个转换工具时,特定的插件可以处理带有任意函数调用的代码。Babel是一个广泛使用的JavaScript编译器,它允许开发者使用最新版本的...

    立即调用的函数表达式1

    当函数被定义后,可以通过调用函数名来执行它。但是,如果在定义函数的同时立即调用它,就会遇到解析问题,因为JavaScript解析器会将`function`关键字视为函数声明,而不是函数表达式,这会导致语法错误。 要实现...

    深入理解JavaScript系列

    - **用途**:提供自调用能力,方便调试时查看调用栈。 - **递归调用**:可以用于递归函数的实现,提高代码可读性。 #### 三、全面解析Module模式 Module模式是一种广泛使用的JavaScript设计模式,用于封装代码,...

    如何在 HTML 中调用 JavaScript 函数而不使用 onclick.docx

    在 HTML 中调用 JavaScript 函数而不使用 onclick 是前端开发中的一种高级技巧,它可以提供更灵活的事件处理方式,使得代码更加整洁和易于维护。本文主要介绍了如何通过其他方法调用 JavaScript 函数,尤其是在不...

    javascript的函数

    - **变量提升(Hoisting)**:函数声明会被提升到它们所在的作用域顶部,这意味着可以在声明之前调用函数。 - **闭包(Closures)**:函数可以访问其词法作用域内的变量,即使在其外部调用,这使得函数能够保留对上...

    在Javascript中Eval函数的使用?

    当从不可信的源获取代码时,使用`eval()`可能会导致恶意代码执行,因为它可以完全访问调用它的作用域,包括读取或修改变量、调用函数甚至控制整个应用程序。因此,除非绝对必要,否则应避免使用`eval()`。 此外,`...

    javascript函数

    JavaScript还支持闭包,这是一种强大的特性,允许函数访问和修改外部作用域的变量,即使在函数调用结束后仍然保持对其的访问: ```javascript function counter() { let count = 0; return function() { count++;...

    Arguments是进行函数调用.doc

    总的来说,`Arguments`对象在JavaScript中扮演着重要的角色,它允许开发者灵活地处理函数参数,实现类似于函数重载的功能,同时也提供了对函数调用上下文的洞察。尽管如此,开发者应谨慎使用`Arguments`,因为它可能...

    javascript执行环境,作用域理解

    当调用一个 JavaScript 函数时,该函数就会进入与该函数相对应的执行环境。如果又调用了另外一个函数(或者递归地调用同一个函数),则又会创建一个新的执行环境,并且在函数调用期间执行过程都处于该环境中。当调用...

    浅析javascript语言中的函数闭包现象.pdf

    JavaScript中的函数闭包是一个重要的概念,它涉及到函数的作用域、变量持久化以及内存管理等多个方面。闭包的本质是在函数内部创建另一个函数,使得内部函数能够访问并操作外部函数的局部变量,即使外部函数已经执行...

    javascript 内置函数速查.txt

    根据给定的文件信息,以下是对“javascript内置函数速查”的详细解读,涵盖了JavaScript中关键的内置函数和语法,帮助理解和应用这些基本概念。 ### 1. 文档操作 - **`document.write()`**: 此函数用于在文档流中...

    EL调用Java函数(想dwr里那样的调用)

    确保每个函数都有明确的用途和文档,避免过度复杂化。 通过以上步骤,你可以实现在EL中调用Java函数,从而增强你的JSP页面的功能,使其更接近于DWR的调用方式。不过,对于复杂的业务逻辑和频繁的前后端交互,DWR或...

    JavaScript中的函数申明、函数表达式、箭头函数

    总结,JavaScript提供了多种创建函数的方式,每种都有其特定的用途和注意事项。理解这些差异对于编写高效、无错的JavaScript代码至关重要。在实践中,根据需求选择合适的函数创建方式,可以提高代码的可读性和维护性...

    JavaScript基础和DOM API函数

    函数是JavaScript的核心组成部分,封装了一段代码,只有在特定事件触发或被显式调用时才执行。通过将代码组织成函数,可以实现代码的重用和模块化,提高开发效率。例如,可以创建一个函数,在按钮点击事件时调用,...

    Javascript 构造函数详解

    JavaScript中的构造函数是实现...理解它们的工作原理,以及如何有效地使用构造函数,对于提升JavaScript编程能力至关重要。通过合理地使用构造函数,我们可以创建可维护、可扩展的代码,从而更好地应对复杂的项目需求。

Global site tag (gtag.js) - Google Analytics