Javascript中的函数分解
Function decaration in Javascript
可能的重复项:
Javascript中的函数表达式和声明有什么区别?
以下列方式声明函数之间是否存在主要区别:
-
function foo(){ alert('BAR'); }
-
var foo = function (){ alert('BAR'); }
-
var foo = function bar(){ alert('BAR'); }
我在这里被告知:
它发生在不同的时间,并导致一个引用匿名函数的变量。函数声明发生在作用域中执行任何逐步代码之前,并生成绑定和具有正确名称的函数。
我声明函数的方式真的会影响代码的效率吗?如果是的话,哪种方式最好使用?
是的,有一个很大的区别。
第一个是函数声明。它发生在进入执行上下文时,在处理任何分步代码之前。它不能在任何类型的控制块中(例如,它在if
语句的正文中是不合法的;但是,如果你这样做 ,大多数浏览器会尝试容纳它 - 有时会导致非常令人惊讶的行为 - 与规范不一致)。它会产生一个命名函数。
(具体来说,是匿名函数表达式)。与所有表达式一样,在分步执行代码时遇到它时,将对其进行处理。与所有表达式一样,它可以位于控制块内。它会导致一个函数没有为具有名称的变量分配名称。
第三个是命名函数表达式。这是一个类似于上面的函数表达式,但该函数也被赋予了一个名称。您希望在IE8及更早版本中避免这些,因为IE实际上会弄错,创建两个单独的函数(在两个不同的时间)。(基本上,IE 将其视为函数声明和函数表达式。IE9终于做对了。
请注意,第二个和第三个示例依赖于自动分号插入;因为它们都是赋值语句,所以它们应该以;
结尾(在函数的结束}
之后)。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 如何在JavaScript中将字符串转换为函数引用
- 用嵌套函数和默认函数定义函数
- 重新分解jQuery函数
- 如何分解jQuery"toggle”;函数转换为separate“;显示“;以及“;隐藏“;功能
- 分解函数 JavaScript
- 如何使用分解函数来分隔和显示不同的值
- Javascript中的函数分解
- 将大型公共 JavaScript 函数分解为较小的私有函数
- CoffeeScript-如何将长的析构函数赋值分解为多行
- 将json分解为函数参数并发送给函数
- 取这个因式分解函数并逐步进行
- 如何将jQuery分解为bind函数
- 如何在javascript中分解长时间运行的函数,但保持性能
- 将函数分解为若干行
- 是否有可能分解这些包含相似代码的函数?
- 我创建了一个网页,可以将数字分解.我已经创建了该函数.现在我需要创建一个函数来显示我的数学
- Javascript模式分解长时间运行的递归函数
- 是否需要在我的node.js控制器中分解迷你函数