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嵌套函数调用上下文的问题解决
在处理嵌套函数时,一个常见的挑战是理解并管理`this`关键字的上下文。本文将深入探讨JS中的嵌套函数调用上下文问题,并提供解决方案。
nodejs中解决异步嵌套循环和循环嵌套异步的问题
Node.js是基于Chrome V8引擎的JavaScript运行环境,它的一大特性是异步非阻塞I/O模型,这使得Node.js在处理高并发场景时具有巨大的优势。
js图片嵌套点击放大特效.zip
此外,这个特效还涉及到图片的嵌套问题。在某些设计中,图片可能嵌套在其他元素内部,如轮播图或网格布局中。这时,JS需要考虑到这些复杂情况,确保点击事件正确传播,放大视图不会被其他元素遮挡。
JS回调函数的应用简单实例
例如,嵌套过多的回调函数会使得代码难以维护和阅读,这在JavaScript中被称为“回调地狱”(callback hell)。
深入探究JavaScript中for循环的效率问题及相关优化
例如,减少不必要的嵌套循环,使用更高效的数据结构和算法,或者避免在循环内部频繁调用函数和计算表达式。另外,JavaScript的执行速度受到浏览器JavaScript解释器的影响。


