js匿名函数运行的方法
Javascript中定义函数的方式有多种,函数直接量就是其中一种。如var fun = function(){},这里function如果不赋值给fun那么它就是一个匿名函数。好,看看匿名函数的如何被调用。
方式1,调用函数,得到返回值。强制运算符使函数调用执行
1
2
3
4
|
( function (x,y){ alert(x+y); return x+y; }(3,4)); |
方式2,调用函数,得到返回值。强制函数直接量执行再返回一个引用,引用再去调用执行
1
2
3
4
|
( function (x,y){ alert(x+y); return x+y; })(3,4); |
这种方式也是很多库爱用的调用方式,如jQuery,Mootools。
方式3,使用void
1
2
3
4
|
void function (x) { x = x-1; alert(x); }(9); |
方式4,使用-/+运算符
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
- 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,使用波浪符(~)
1
2
3
4
|
~ function (x, y) { alert(x+y); return x+y; }(3, 4); |
方式6,匿名函数执行放在中括号内
1
2
3
|
[ function (){ console.log( this ) // 浏览器得控制台输出window }( this )] |
方式7,匿名函数前加typeof
1
2
3
|
typeof function (){ console.log( this ) // 浏览器得控制台输出window }( this ) |
方式8,匿名函数前加delete
1
2
3
|
delete function (){ console.log( this ) // 浏览器得控制台输出window }( this ) |
方式9,匿名函数前加void
1
2
3
|
void function (){ console.log( this ) // 浏览器得控制台输出window }( this ) |
方式10,使用new方式,传参
1
2
3
|
new function (win){ console.log(win) // window }( this ) |
方式11,使用new,不传参
1
2
3
|
new function (){ console.log( this ) // 这里的this就不是window了 } |
方式12,逗号运算符
1
2
3
|
1, function (){ console.log( this ) // window }(); |
方式13,按位异或运算符
1
2
3
|
1^ function (){ console.log( this ) // window }(); |
方式14,比较运算符
1
2
3
|
1> function (){ console.log( this ) // window }(); |
最后看看错误的调用方式
1
2
3
4
|
function (x,y){ alert(x+y); return x+y; }(3,4); |
js匿名函数运行的方法的更多相关文章
- JS匿名函数的理解
js匿名函数的代码如下:(function(){ // 这里忽略jQuery 所有实现 })(); 半年前初次接触jQuery 的时候,我也像其他人一样很兴奋地想看看源码是什么样的.然而,在看到源码的 ...
- js匿名函数和闭包总结
js匿名函数和闭包总结 一.总结 一句话总结:匿名函数的最主要作用是创建闭包,闭包就是将函数内部和函数外部连接起来的一座桥梁.内层的函数可以使用外层函数的所有变量,即使外层函数已经执行完毕.闭包可以用 ...
- js匿名函数(变量加括号就是函数)
js匿名函数(变量加括号就是函数) 一.总结 变量加括号就是函数,而函数的括号是用来传参的 1.类比:以正常函数去想匿名函数,匿名函数比正常函数只是少了函数名,本质还是一样,该怎么传参还是怎么传参,小 ...
- js匿名函数确实是个好东西
<body onload="alert('http://www.baidu.com/');"> <script type="text/javascrip ...
- JS匿名函数自执行函数
JS匿名函数自执行函数:(function(){})();(function(){}) 这是一个函数,函数后面接(),则是调用函数 比如(function(arg){console.log(arg); ...
- js匿名函数自执行的好处
我们知道,在创建一个函数时如果要用到变量来存取信息的话,要尽量使用局部变量. 因为一方面局部变量会随着函数的执行结束被销毁:另一方面在不执行函数的时候也不会创建这个局部变量,对节省空间资源有很大的好处 ...
- js匿名函数测试
js匿名函数测试 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...
- js 匿名函数 js-函数定义方法
1.任何函数都是有返回值的,没有返回值的,在某些语言里称之为过程例如PL/SQL 2.js中的函数如果没有return 关键字指明给出的返回值,那么当调用完函数后,会返回“undefined" ...
- js 匿名函数-立即调用的函数表达式
先提个问题, 单独写匿名函数为什么报错?return 匿名函数 为什么不报错? 如图: 第二种情况在 f 还没有执行的时候,就报错了,,,当然这得归因于函数声明语句声明提前(发生在代码执行之前)的原因 ...
随机推荐
- C#本期本周的算法
C#根据当前时间获取,本周,本月,本季度等时间段 DateTime dt = DateTime.Now; //当前时间 DateTime startWeek = dt.AddDays( - Conve ...
- UIBezierPath 类的使用
使用UIBezierPath类可以创建基于矢量的路径,这个类在UIKit中.此类是Core Graphics框架关于path的一个封装.使用此类可以定义简单的形状,如椭圆或者矩形,或者有多个直线和曲线 ...
- hystrix应用介绍(三)
hystrix提供了两种隔离策略:线程池隔离和信号量隔离.hystrix默认采用线程池隔离. 1.线程池隔离 不同服务通过使用不同线程池,彼此间将不受影响,达到隔离效果. 例如: 我们可以通过andT ...
- 资源管理与调度系统-YARN的基本架构与原理
资源管理与调度系统-YARN的基本架构与原理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 为了能够对集群中的资源进行统一管理和调度,Hadoop2.0引入了数据操作系统YARN. ...
- codevs 1213 解的个数
1213 解的个数 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 已知整数x,y满足如下面的条件: ax+by+c = ...
- html中的兼容 & 如何对网站的文件和资源进行优化
一.1.双边距 BUG float引起的 使用display 2.超链接hover 点击后失效 使用正确的书写顺序 link visited hover active (可简单看成由 爱生恨 lo ...
- Thinkphp 出现 “_CACHE_WRITE_ERROR” 错误的可能解决办法
有可能是老毛病: Cache文件夹和里面的文件,php没有权限 解决办法: chmod -R 777 /.............../www/Cache
- OpenCV-3.4.2基于Qt-5.10.1的编译
OpenCV-3.4.2基于Qt-5.10.1的编译 由于本人在使用CMake和MinGW编译OpenCV是遇到了很多问题,在这里记录下来.至于所需软件的安装和相应环境变量的设置,网上有很多详细的教程 ...
- 如何在SecureCRT中给linux上传和下载文件
方法/步骤 需要上传或者下载,需要使用rz和sz命令.如果linux上没有这两个命令工具,则需要先安装.可以使用yum安装.运行命令yum install lrzsz. 安装完成后就可以使 ...
- Selenium入门17 selenium IDE安装及使用
selenium IDE是firefox浏览器的一个插件,支持脚本的录制回放,关键字驱动的.界面跟robotframework很像. 实际测试中不用录制回放,不过初学者拿来看看元素是如何定位的还是有用 ...