什么是匿名函数

Javascript中定义函数的方式有多种,函数直接量就是其中一种。如var fun = function(){},这里function如果不赋值给fun那么它就是一个匿名函数。好,看看匿名函数的如何被调用。

调用方式

1:调用函数,得到返回值。强制运算符使函数调用执行

(function(x,y){
alert(x+y);
return x+y;
}(3,4));

2:调用函数,得到返回值。强制函数直接量执行再返回一个引用,引用再去调用执行

(function(x,y){
alert(x+y);
return x+y;
})(3,4);

这种方式也是很多库爱用的调用方式,如jQueryMootools

3:使用void

void function(x) {
x = x-1;
alert(x);
}(9);

4:使用-/+运算符

-function(x,y){
alert(x+y);
return x+y;
}(3,4); +function(x,y){
alert(x+y);
return x+y;
}(3,4); --function(x,y){
alert(x+y);
return x+y;
}(3,4); ++function(x,y){
alert(x+y);
return x+y;
}(3,4);

5:使取反运算符(~)

~function(x, y) {
alert(x+y);
return x+y;
}(3, 4);

6:匿名函数执行放在中括号内

[function(){
console.log(this) // 浏览器得控制台输出window
}(this)]

7:匿名函数前加typeof

typeof function(){
console.log(this) // 浏览器得控制台输出window
}(this)

8:匿名函数前加delete

delete function(){
console.log(this) // 浏览器得控制台输出window
}(this)

9:匿名函数前加void

void function(){
console.log(this) // 浏览器得控制台输出window
}(this)

10:使用new方式,传参数

new function(win){
console.log(win) // window
}(this)

11:使用new,不传参数

new function(){
console.log(this) // 这里的this就不是window了
}

12:逗号运算符

1, function(){
console.log(this) // window
}();

13:按位异或运算符

1^function(){
console.log(this) // window
}();

14:比较运算符

1>function(){
console.log(this) // window
}();

帮助文档

http://1.hehongwei44.sinaapp.com/?p=399

匿名函数自调用(IIFE)的更多相关文章

  1. JavaScript---js语法,数据类型及方法, 数组及方法,JSON对象及方法,日期Date及方法,正则及方法,数据类型转换,运算符, 控制流程(三元运算),函数(匿名函数,自调用函数)

    day46 一丶javascript介绍 JavaScript的基础分为三个       1.ECMAScript:JavaScript的语法标准.包括变量,表达式,运算符,函数,if语句,for语句 ...

  2. (function(root,factory){})(this,function($){}) 一个立即执行的匿名函数自调

    因为新公司用到ocx 我就开始看原来的代码 无意中发现这个 可能原来比较low吗(虽然现在也很low吧)没发现这个东东 还可以这样写 于是乎我开始了探索 完整代码如下 HTML <div id= ...

  3. 函数&回调函数&匿名函数&自调函数

  4. Javascript中的回调函数和匿名函数的回调

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. Javascript中的回调函数和匿名函数的回调示例介绍

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. javascript匿名函数自调用

    // 匿名函数的自调用 /*var f1 = function() { console.log('我是一个匿名函数!'); }*/ // f1(); // 上面是定义一个匿名函数,然后调用,其实上面就 ...

  7. JS函数 -- 功能,语法,返回值,匿名函数,自调用匿名函数,全局变量与局部变量,arguments的使用

    “JavaScript设计得最出色的就是它的函数的实现.” -- <JavaScript语言精粹> 函数包含一组语句,它们是JS的基础模块单元,用于指定对象的行为.一般来说,所谓编程,就是 ...

  8. JavaScript自调用匿名函数

    Self-Invoking Anonymous Function,即自调用匿名函数.顾名思义,该函数没有名称,不同的是,该函数定义后立即被调用.该函数的作用是在应用中初始化或做一次性工作. 普通匿名函 ...

  9. 通过取父级for循环的i来理解闭包,iife,匿名函数

    在使用for循环的时候,假如需要在循环体中添加一个匿名函数处理其他的事情,那么,在这个匿名函数内,如果需要用到对应的i,因为闭包的缘故,循环体循环结束后才返回i,所以i最终为最后一次++的数值.   ...

随机推荐

  1. html之大白

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  2. UVALive 6470 Chomp --记忆化搜索

    题意:给一个只有三行的方块阵(横向最多100个),然后p,q,r分别代表第1,2,3层的方格数,两人轮流去掉一个格子,此时这个格子的右上方都会被去掉,面临只剩最左下角的一个格子的状态的人输,问先手能否 ...

  3. (转)priority_queue的用法

    priority_queue调用 STL里面的 make_heap(), pop_heap(), push_heap() 算法实现,也算是堆的另外一种形式.先写一个用 STL 里面堆算法实现的与真正的 ...

  4. HDU 3081 最大流+并查集

    题意:有n个男生和n个女生,玩结婚游戏,由女生选择男生:女生可以选择不会和她吵架的男生以及不会和她闺蜜吵架的男生,闺蜜的闺蜜也是闺蜜.问你最多可以进行多少轮,每一轮每个女生只能选择一个之前她没选过的男 ...

  5. 第1章 UML基础:类的关系

    1. 类的关系 1.1 继承和实现:继承表示有父子关系 1.2 依赖:(use–a),表示一个类要使用(use)另一个类. (1)类图 (2)三种依赖方式:函数参数或返回值.局部变量和静态成员变量或函 ...

  6. uGUI练习(三) KeyBoard Navigation

    练习目标 练习通过键盘在按钮或其它Selectable类型组件上导航 步骤 创建一排的Button,及一个右边的Button 2.查看Button的属性里有一栏下拉列表Navigation,默认选择的 ...

  7. java 16 -7 泛型方法和泛型接口(泛型类相似)

    写一个ObjectTool类 泛型方法:把泛型定义在方法上 格式 public <泛型类型> 返回类型 方法名(泛型类型) 这样的好处是: 这个泛型方法可以接收任意类型的数据 public ...

  8. HBuilder打包ios应用

    1先安装itunes在电脑上 2,在HBuilder的工具栏上的"工具"选项卡上安装ios插件

  9. 课题:如何培养自己的SEO资源

    课题:如何培养自己的SEO资源 问:做SEO最重要的是什么?[针对性的流量]答:看获取一样东西的门槛.稀缺性,人人可得价值不大外链 内容 流量[正确]针对性的自然流量是用户自愿带来的,价值高,能形成购 ...

  10. 类图和对象图教程-类(Class)、接口(Interface)、协作(collaboration)、依赖关系(Dependency)、泛化关系(Generalization)、关联关系(Association)以及实现关系(Realization)

    类图的概念 (转) 一.概述 类图(Class Diagram)是描述类.接口.协作以及它们之间关系的图,用来显示系统中各个类的静态结构.类图是定义其他图的基础,在类图基础上,可以使用状态图.协作图. ...