JavaScript 函数嵌套问题
代码如下:
一开始,我以为函数都是预编译的,在代码执行之前就已经准备好的,
所以,推测 foo, bar 两个函数在一开始就存在,以上代码中的 foo, bar 始终都没变过。
经过运行测试,发现如果 foo 不执行, bar 函数是不存在的,
结论是:预编译的时候,只有全局函数 foo 被定义,而 foo 函数体内的函数 bar 还没有定义,
当 foo 函数被执行时, 先定义 bar 函数,再执行 foo 函数代码。
当 foo 第二次执行时, bar 还会被定义一遍,所以 foo 执行多少次, bar 就被定义多少次。
不知道我以上的结论对不对?
还有一点,我担心这样会不会影响效率,如果 bar 函数的内容不依赖 foo 的环境,把 bar 写成全局函数会不会快一些?
function foo () {
function bar () {
}
return bar;
}
var a = foo();
var b = foo();
alert(a === b); // 结果为 false
一开始,我以为函数都是预编译的,在代码执行之前就已经准备好的,
所以,推测 foo, bar 两个函数在一开始就存在,以上代码中的 foo, bar 始终都没变过。
经过运行测试,发现如果 foo 不执行, bar 函数是不存在的,
结论是:预编译的时候,只有全局函数 foo 被定义,而 foo 函数体内的函数 bar 还没有定义,
当 foo 函数被执行时, 先定义 bar 函数,再执行 foo 函数代码。
当 foo 第二次执行时, bar 还会被定义一遍,所以 foo 执行多少次, bar 就被定义多少次。
不知道我以上的结论对不对?
还有一点,我担心这样会不会影响效率,如果 bar 函数的内容不依赖 foo 的环境,把 bar 写成全局函数会不会快一些?
...全文
相关推荐
JS嵌套函数调用上下文的问题解决
主要探讨了JS嵌套函数调用上下文的问题,需要的朋友可以参考下
nodejs中解决异步嵌套循环和循环嵌套异步的问题
本篇文章主要介绍了nodejs中解决异步嵌套循环和循环嵌套异步的问题,具有一定的参考价值,有兴趣的可以了解一下
一个纯js实现的日历控件a JavaScript Calendar Control 在嵌套网页的使用例子
一个纯js实现的日历控件a JavaScript Calendar Control 在嵌套网页的使用例子。http://www.linjon.cn, 成都领君科技有限公司
js图片嵌套点击放大特效.zip
代码简介:js图片嵌套点击放大特效是一款适合远景效果图展示的js特效代码。
JS回调函数的应用简单实例
主要分享了JS回调函数应用的简单实例,比较实用,需要的朋友可以参考下


