Javascript定义function的区别
来源:互联网 发布:手机淘宝微淘动态删除 编辑:程序博客网 时间:2024/04/30 23:41
今天看一本《悟透javascript精华》里面发现了一个非常好玩的东西让大家来分享一下!
我们来看看下面的代码:
1.
var myfunc = function (){alert("hello");};myfunc(); myfunc = function (){alert("yeah");};myfunc();
这段代码是不是很简单,对于有过javascript编程经验的人来讲这段一定不陌生的。那如果运行这段程序的话,结果是多少呢?那大家就思考一下!
我们再看一段代码:
2.
function myfunc (){alert("hello");};myfunc(); function myfunc (){alert("yeah");};myfunc();
看了这段代码,有人就要问了,这段代码和上一段代码不是一样的吗?那我就要问了,如果又运行这段代码那结果又是多少呢?
那答案是多少呢?1中运行的结果:hello yeah,而2中运行的结果却是yeah yeah.
其实这就是今天我要讲的重点啦,这两段代码看似一样的,但是却有不相同的地方,他们的定义格式是不同的。按理说,两个签名完全相同的函数,在其他编程语言中应该是非法的。但在JavaScript 中,这没错。不过,程序运行之后却发现一个奇怪的现象:两次调用都只是最后那个函数里输出的值!显然第一个函数没有起到任何作用。这又是为什么呢?
原来,JavaScript 执行引擎并非一行一行地分析和执行程序,而是一段一段地分析执行的。而且,在同一段程序的分析执行中,定
义式的函数语句会被提取出来优先执行。函数定义执行完之后,才会按顺序执行其他语句代码。也就是说,在第一次调用myfunc 之前,
第一个函数语句定义的代码逻辑,已被第二个函数定义语句覆盖了。所以,两次都调用都是执行最后一个函数逻辑了。
- Javascript定义function的区别
- Javascript 两种 function 定义的区别
- javascript笔记:javascript里面不同function定义的区别
- javascript笔记:javascript里面不同function定义的区别
- javascript两种function的定义介绍及区别说明
- Javascript 两种 function 定义的本质区别
- javascript之var与function定义的区别
- JavaScript 中定义函数时用 var foo = function () {} 和 function foo() 的区别
- JavaScript的function和function()的区别
- Javascript 两种定义Function的方法
- javascript中function函数内部定义var message 和 message 的区别
- var和function定义方法的区别
- var和function定义方法的区别
- 理解javascript中的function与new Function的区别
- JavaScript中:表达式和语句的区别 —— function和对象直接量 不能匿名定义解惑
- JavaScript 定义function的三种方式小结
- AS3中的一些基本定义,Function与Method的区别
- 几种javascript函数定义的区别
- 自学Flex视频网页集锦
- 观察者模式之android 通讯录拨打的历程记录
- Memcached深度分析(原创)
- 环境变量简述
- UVa 757 - Gone Fishing
- Javascript定义function的区别
- C++ 容器及选用总结
- Android 3D引擎之min3D--支持材质和UV贴图的objloader
- 彻查VS2010 其中一个cpp中的断点在调试运行时无效的问题
- 关于android的9path图片处理
- MySQL索引背后的数据结构及算法原理
- win32以动态链接库导出类及其成员变量
- __FILE__,__LINE__,FUNCTION__实现代码跟踪调试(linux下c语言编程 )
- MFC 分割窗体(Splitter Windows)