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

"(function(){})()"的分步解析

阅读更多

一、"(function(){})()"的功能
        功能描述:定义一个函数对象并执行。

        返回值:该代码段返回定义的函数对象的执行结果。

        这个写法到底是什么意思呢?

        首先我们把代码分为2个部分:"(function(){})" 和 "()"

        "(function(){})"的功能:定义一个函数对象。

        "()":执行函数并返回结果。

        下面我们来逐步分析这种写法。
二、"(function(){})()"的分步解析
        首先尝试理解以下2种描述:

        1、定义一个函数a,返回固定值1;

        对应的javascript代码片段:

        function a()
        {
                return 1;
        }

        2、定义一个对象a,该对象为函数对象,函数功能返回固定值1;

        对应的javascript代码片段:

        var a = new Object();
        a =        function()
        {
                return 1;
        }

        简化写法:

        var a = function()
        {
                return 1;
        }

        进一步简化

        var a = function(){return 1}

        3、有上可以了解到

        javascript代码片段

        var a = function(){return 1}

        实现的是定义一个变量a,a为一个对象,确切说是一个函数对象,返回固定值1;
        一个简单的问题如何调用a?

        当然是:a()
        那如果"a = function(){return 1}",a的调用又怎么写?
        "function(){return 1}" + "()"

        即:
        (function(){return 1})()
        备注:

                什么函数定义部分加个"()"?

                其实这个"()"没有特殊含义,只是把函数对象作为一个整体。
                如果不加"()"那么 就是"function(){return 1}()"这明显是一个语法错误。

分享到:
评论

相关推荐

    json字符串递归解析

    在开发过程中,一定要注意递归深度限制,防止栈溢出错误,可以适时使用尾递归优化或者分步处理大数据量的JSON字符串。 总之,JSON字符串递归解析是处理复杂JSON数据结构的关键技术。通过自定义递归函数,我们可以...

    jQuery页面功能分步指引介绍代码.zip

    **jQuery页面功能分步指引介绍代码** jQuery是一个广泛应用于网页开发的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画制作以及Ajax交互。本压缩包包含了一个使用jQuery实现的页面功能示例,...

    非线性薛定谔方程数值解的MATLAB仿真.docx

    由于NLSE是一非线性偏微分方程,难以直接求出解析解,因此需要通过数值方法进行求解。常见的数值方法包括分布有限差分法(SSFD)和分步傅立叶变换法(SSFT)。其中,SSFT是基于快速傅立叶变换算法(Fast Fourier ...

    C++求导算法和实现

    例如,我们可以定义一个`NumericalDerivative`类,包含一个模板成员函数`estimate_derivative`,它接受一个函数对象、自变量的值和差分步长作为参数,返回该点的导数估计。 ```cpp template <typename Function> ...

    一个用VB6写的可进行四则混合运算的计算器

    一种常见的方法是分步解析,逐字符检查并处理运算符和数字。 9. **函数**:VB6中的函数可以封装复杂操作,如计算表达式结果。我们可以创建自定义函数,如`Function CalculateExpression(expression As String) As ...

    【JavaScript源代码】怎样用Javascript实现建造者模式.docx

    - **分步创建复杂的对象**:通过逐步构建的方式,可以更灵活地控制对象的创建过程。 - **解耦封装过程与组件创建**:使得构建过程独立于具体的组件实现。 - **无需关心组件如何组装**:用户只需关注最终的产品,而...

    Python库 | tencentcloud-sdk-python-scf-3.0.534.tar.gz

    本文将详细解析名为"Tencentcloud-sdk-python-scf"的Python库,该库主要用于腾讯云的Serverless Compute服务(SCF,即Serverless函数计算)。版本为3.0.534,通过这个库,开发者可以轻松地与腾讯云SCF进行交互,实现...

    Laravel开发-laravel-wizard

    **Laravel 开发:Laravel-Wizard 深度解析** Laravel-Wizard 是一个针对 Laravel 5.x 版本的组件,它旨在为开发者提供一套便捷的向导式交互流程,帮助用户分步完成复杂任务,如注册、设置、购物车等。这个组件能够...

    Laravel开发-laravel-sub-request

    这在处理复杂业务逻辑,如分步表单、异步数据加载或者需要组合多个服务时非常有用。 首先,我们要理解`laravel-sub-request`的核心概念。它主要包含两个关键部分:`SubRequest`类和`SubRequestable`接口。`...

    simple-calculator:简单的计算器

    这可以通过分步解析字符串,识别数字、运算符和括号,然后应用运算顺序规则(即先乘除后加减,先括号内后括号外)来完成。JavaScript的内置`eval()`函数可以用来执行字符串表达式,但考虑到安全性和性能,开发者通常...

    浅谈express 中间件机制及实现原理

    总结来说,Express中间件机制是通过一系列函数的串联,实现了请求处理的分步执行,为Node.js应用提供了强大的灵活性和可扩展性。理解和熟练使用中间件是掌握Express框架的关键,它使得开发复杂的Web应用变得简单高效...

    jQuery步骤进度条样式代码

    下面我们将深入探讨这个主题,解析其相关知识点,并给出实现此类功能的具体细节。 ### jQuery jQuery 是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互。jQuery的核心特性包括...

    在vue.js中使用JSZip实现在前端解压文件的方法

    此外,由于前端解压可能会消耗大量内存和计算资源,因此对于大型文件,可能需要考虑将解压操作分步进行,或者将其移到服务器端处理。 JSZip库提供了丰富的API,可以满足各种复杂的ZIP文件操作需求。例如,你可以...

    SFC顺序功能图编程教案.doc

    ### SFC顺序功能图编程知识点解析 #### 一、SFC顺序功能图简介 - **定义**: SFC(Sequence Function Chart)顺序功能图是一种用于描述系统控制流程的图形化编程语言,广泛应用于PLC(Programmable Logic Controller, ...

    大中型PLC应用教程

    ### 大中型PLC应用教程知识点解析 #### 一、PLC基础知识 **1.1 PLC概述** 可编程逻辑控制器(Programmable Logic Controller,简称PLC)是一种专为工业环境设计的数字运算操作电子系统。它采用了可编程序的存储器...

    matlab的欧拉方法代码-NumericalMethodsMatlab:这是一些数值算法的Matlab代码的集合,它们的应用以及使用Matl

    在Matlab中实现欧拉方法可以帮助我们处理那些不能解析求解或者解析解过于复杂的问题。欧拉方法基于简单的迭代思想,通过连续的步长对微分方程的解进行近似。 欧拉方法的基本步骤如下: 1. 设定初始条件:给定微分...

    formwizard:基于 jQuery 的表单向导应用程序

    `formwizard` 是一个基于 jQuery 的强大表单向导插件,它为创建分步式、交互性强的表单提供了便利。在这个详尽的解析中,我们将深入探讨 `formwizard` 的核心功能、使用方法以及如何优化你的表单用户体验。 ### 一...

    jquery+ajax选项卡特效插件下载

    《jQuery + AJAX 选项卡特效插件深度解析与应用》 在网页设计中,选项卡是一种常见的交互元素,它能够高效地展示大量信息而不会过度拥挤页面。jQuery,作为一个轻量级、功能丰富的JavaScript库,提供了强大的DOM...

    微信小程序动画(Animation)的实现及执行步骤

    本文将详细解析微信小程序动画的实现方式、执行步骤,并通过实例加以说明,同时介绍相关的参数和方法。 一、实现方式 1. 创建动画实例:首先,我们需要使用 `wx.createAnimation` 创建一个动画实例。这个实例将...

Global site tag (gtag.js) - Google Analytics