(function(){})()的用法与优点

在google的ad的js里面,发现有类似这样的语句
//我用alert("test")代替里面的语句

(function(){alert("test")})()
测试了一下,类似直接执行

alert("test")
那这个用法是有什么好处么?希望大家说一下啊!

function xx(){...}
相当于
var xx;
xx=function(){...}

function(){....}返回一个Function对象
(Function对象)()就是调用该函数了

直观的好处是把几条需要顺序执行的语句组织成一个单元,使逻辑清晰,又不用为它取名字
可能出于节约的考虑:该匿名函数像一个临时变量,执行后可以被立即销毁,当然连同其中的局部变量

(0)

相关推荐

  • (function(){})()的用法与优点

    在google的ad的js里面,发现有类似这样的语句 //我用alert("test")代替里面的语句 (function(){alert("test")})() 测试了一下,类似直接执行 alert("test") 那这个用法是有什么好处么?希望大家说一下啊! function xx(){...} 相当于 var xx; xx=function(){...} function(){....}返回一个Function对象 (Function对象)

  • python3新特性函数注释Function Annotations用法分析

    本文分析了python3新特性函数注释Function Annotations用法.分享给大家供大家参考,具体如下: Python 3.X新增加了一个特性(Feature),叫作函数注释 Function Annotations 它的用途虽然不是语法级别的硬性要求,但是顾名思义,它可做为函数额外的注释来用. Python中普通的函数定义如下: def func(a, b, c): return a + b + c >>> func(1, 2, 3) 6 添加了函数注释的函数会变成如下形式

  • JAVA8之函数式编程Function接口用法

    从这章开始,会介绍几个常用的函数式接口工具,首先先来看下这个大家族: 首先从Function接口开始介绍 一. 概述 该接口顾名思义,函数的意思,就像是数学,是给定一个参数然后返回结果.该类方法如下: package java.util.function; import java.util.Objects; @FunctionalInterface public interface Function<T, R> { R apply(T t); default <V> Functio

  • C++ std::function的用法详解

    类模版std::function是一种通用.多态的函数封装.std::function的实例可以对任何可以调用的目标实体进行存储.复制.和调用操作,这些目标实体包括普通函数.Lambda表达式.函数指针.以及其它函数对象等.std::function对象是对C++中现有的可调用实体的一种类型安全的包裹(我们知道像函数指针这类可调用实体,是类型不安全的). 通常std::function是一个函数对象类,它包装其它任意的函数对象,被包装的函数对象具有类型为T1, -,TN的N个参数,并且返回一个可

  • php学习之function的用法

    1,申明函数 在PHP中,定义函数的方法同其他编程语言几乎一样.下面是PHP申明函数的语法结构: 复制代码 代码如下: Function function_name($argument1,$argument2,$argument3,......$argumentn) { //函数代码code Return 返回值; } 以上语法结构中,关键字的含义如下. (1)function:用于申明用户自定义函数的关键字. (2)function_name:要创建的函数名称.该名称将在以后被调用时使用.函数

  • C++11中std::function与std::bind的用法实例

    目录 关于std::function 的用法: 关于std::bind 的用法: 附:std::function与std::bind双剑合璧 总结 关于std::function 的用法: 其实就可以理解成函数指针 1. 保存自由函数 void printA(int a) { cout<<a<<endl; } std::function<void(int a)> func; func = printA; func(2); 保存lambda表达式 std::functio

  • 15分钟深入了解JS继承分类、原理与用法

    本文全面讲述了JS继承分类.原理与用法.分享给大家供大家参考,具体如下: 许多 OO 语言都支持两种继承方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.由于 ECMAScript 中的函数没有签名,所以在 JS 中无法实现接口继承.ECMAScript 只支持实现继承,而且其实现继承主要是依靠原型链来实现的.所以,下面所要说的原型链继承.借用构造函数继承.组合继承.原型式继承.寄生式继承和寄生组合式继承都属于实现继承. 最后的最后,我会解释 ES6 中的 exten

  • 详解vue过滤器在v2.0版本用法

    1.x写法 <body> <div id="app"> {{html|uppercase}} </div> <script> new Vue({ el:'#app', data:{ msg:"123", html:"abc" } }) </script> </body> 但是2.0中已经废弃了过滤器,需要我们自定义 <div id="app">

  • 浅析AngularJS Filter用法

    系统的学习了一下angularjs,发现angularjs的有些思想根php的模块smarty很像,例如数据绑定,filter.如果对smarty比较熟悉的话,学习angularjs会比较容易一点,这篇文章给大家介绍angularjs filter用法详解,感兴趣的朋友一起学习吧 Filter简介 Filter是用来格式化数据用的. Filter的基本原型( '|' 类似于Linux中的管道模式): 复制代码 代码如下: {{ expression | filter }} Filter可以被链式

  • C++ std::function详解

    目录 一.介绍 二.实例 三.与std::bind的区别 总结 一.介绍 std::function是函数模板类(是一个类).包含在#include <functional> 中.以前没有这个类的时候,我们在想定义一个回调函数指针,非常的麻烦.我们通常这样的定义: typedef void(*ptr)(int,int)// 这里的ptr就是一个函数指针 而使用了std::function这个类的时候,我们可以这样使用,来替换函数指针.例如: std::function<void(int

随机推荐