Javascript中自执行函数
来源:互联网 发布:怎样申请淘宝卡 编辑:程序博客网 时间:2024/04/27 20:58
关于Javascript中自执行函数
刚学js不久,在观察一些其他人写的js函数时,会发现他们写的函数与我们写的函数却是有一点不一样,我写代码一直的思维就是凡是函数,就必须得先声明,后调用,但是看有的人写的函数代码却是自己执行的。
<script> (function(){ alert("hello,I am coming!"); })();</script>
但是它确确实实的弹出来了,然后在网上了解了一下,发现还有这样写的,当然,function里的代码是我随便写的,主要是看语法。
<script> (function(){ alert("hello,I am coming!"); }());</script>
然后它也确确实实的弹出来了。
在网上这种函数的叫法貌似比较多的样子,个人就选了一个自执行函数来称呼了,这样叫也挺贴切的。
说到自执行函数,就不得不提 函数声明 和 函数表达式了;
函数声明
类似于这样
function(){ //code}; //这是匿名函数函数声明function abc(){ //code}; //这是有名函数函数声明,abc就是这个函数的名字。
而函数表达式也是用类似于表达式的形式来声明函数。
var abc = function(){ //code};
调用abc里面的函数时,只需这样 abc(); ,把abc当成这个函数的函数名就行;
现在看上面的自执行函数,不就是把函数代码块用括号括起来,再在后面添加一个括号就搞定了;
可是函数声明和函数表达式似乎没有什么区别,在用法上也差不多,那为什么要分函数声明和函数表达式呢?
在这里又要扯到js的解析器了,在你看来,这两者似乎没有区别,但是在js的解析器的眼里,函数声明与函数表达式可就是大不一样了。对于函数声明,js解析器会优先读取,确保在所有代码执行之前声明已经被解析,而函数表达式,当js在解析代码时,读到某句表达式时,便会立刻解析,当使用函数声明的形式来定义函数时,调用语句的地方那就随你写了,写在函数声明的前后都是可以的。
自执行函数由于把函数的声明写在了()之中,所以解释器以表达式来解析其中代码,如果向()中传入函数声明会直接返回此函数,
所以
<script> (function(){ alert("hello,I am coming!"); })(); //上面用过的</script>
这句代码就相当于
<script> function a(){ alert("hello,I am coming!"); }; a(); //调用a函数</script>
或者
<script> var a=function(){ alert("hello,I am coming!"); }; a(); //调用a函数</script>
所以只要能让JavaScript解释器以函数表达式而不是函数声明来处理匿名函数,那么这个立即执行就不是问题了。
总结
第一次写博客,Markdown还挺好用的。
- Javascript中自执行函数
- Javascript中定义自执行函数
- Javascript 自执行函数
- JavaScript 自执行函数
- javascript自执行函数
- Javascript 自执行函数
- javascript自执行函数
- Javascript 自执行函数
- JavaScript自执行函数
- javascript自执行函数
- javascript:自执行函数
- javascript自执行匿名函数
- JavaScript/JQuery自执行函数
- javascript 匿名自执行函数
- JavaScript 自执行函数简述
- javascript自执行匿名函数
- JavaScript自执行匿名函数
- Javascript 自执行函数(匿名函数)
- C/C++内存管理详解
- VS2012的丑态
- hdu 2955 Robberies(0/1背包)
- 黑马程序员----网络编程
- PAT《数据结构学习与实验指导》实验项目集 3-05
- Javascript中自执行函数
- [Java]寻找最低公共祖先(普通树的情形)Lowest Common Ancestor of a Binary Tree
- 用JavaScript语言编写:点击对应颜色的小方块更换主题颜色
- 随笔小记(指导一下未来研究生生涯)
- Android实战技巧之三十九:短信收发
- 统计素数+判断素数 模板
- Migrate to Hexo
- myeclipse 查找文件(open type)快捷键
- 苏芯工作心得第一天