JS 立即执行的函数表达式(function)写法
来源:互联网 发布:新手程序员刚进公司 编辑:程序博客网 时间:2024/05/16 04:23
1. 前言
函数需要先定义,后使用。 这基本上所有编程语言的一条铁的定律。
一般状况下, 我们需要调用一个JavaScript 函数, 基本的状况都是先定义, 然后再调用。 看一个例子
但是如果不需要显示调用函数, 让这个函数在定义的时候就执行的话, 该如何写才可以呢?
2. 思考的历程
从以上的例子来看,聪明的你结合以上的使用状况可能会想:===》既然调用的时候是在函数名后面加上一对 是否在function 定义的后面加上一对大括号是否就可以执行了呢? 像以下这样:
不幸的是,以上的写法会报出js 的语法错误。
因为Javascript 的解析器在解析器解析全局的function或者function内部function关键字的时候, 默认会把大括号解析成function声明,而不是function表达式。
也就是说, 会把最后的一对大括号默认解析成一个缺少名字的function,并且抛出一个语法错误信息,因为function声明需要一个名字。
===》 你可能又会想, 如果我在大括号中传入参数是否就会解析成表达式了呢?
的确, 错误是没有了。 但是以上的写法等同于以下写法的效果这两句完全没有关系, 函数还是不会执行
3. 正确的写法
所以, 只要将大括号将代码(包括函数部分和在后面加上一对大括号)全部括起来就可以了。
还有一种写法也可以, 就是将后面的大括号移出来, as
推荐是使用第一种方式。
但是目前很多比较好的js library 使用的都是第二种方式。
比如: web 图形绘制的: git , draw2d ,....
4. 参考
1. http://benalman.com/news/2010/11/immediately-invoked-function-expression/
ps:就是预加载方法(funciton funName(){}())
0 0
- JS 立即执行的函数表达式(function)写法
- JS 立即执行的函数表达式(function)写法
- JS 立即执行的函数表达式(function)写法
- JS 立即执行的函数表达式(function)写法
- js 在定义的时候立即执行的函数表达式(function)写法
- js自调函数(function(){…})()立即执行函数写法理解
- js中(function(){…})()立即执行函数写法理解
- js中(function(){…})()立即执行函数写法理解
- js中(function(){…})()立即执行函数写法理解
- js中(function(){…})()立即执行函数写法理解
- js中(function(){…})()立即执行函数写法理解
- 转载:js中(function(){…})()立即执行函数写法理解
- js中(function(){…})()立即执行函数写法理解
- js中(function(){…})()立即执行函数写法理解
- js中(function(){…})()立即执行函数写法理解
- js中(function(){…})()立即执行函数写法理解
- js中(function(){…})()立即执行函数写法理解
- js中(function(){…})()立即执行函数写法理解
- leetcode172:Factorial Trailing Zeroes
- 按键监听类KeyListener及适配器改良方案
- RPCA以及LRR
- JAVA实现的批量更改文件后缀名的程序
- 数据库调优教程(三)记录慢查询
- JS 立即执行的函数表达式(function)写法
- SDUT 2605-A^X mod P(大幂分解求和)
- Xcode_使用小技巧(内存,快捷键)
- [前端] requireJS—详解
- “互联网+”时代,移动应用安全解决之道
- Android 编译错误:/usr/bin/ld: cannot find -luuid,/usr/bin/ld: cannot find -llzo2
- Android的服务(Service)(三)Service客户端的绑定与跨进程
- UPC2226: Contest Print Server
- OSPF