为什么在Javascript中有两种不同的创建函数的方法?
在我的代码中,我有以下内容:为什么在Javascript中有两种不同的创建函数的方法?,javascript,function,Javascript,Function,在我的代码中,我有以下内容: var setTheme = function (color) { }; function setTheme(color) { }; 函数名实际上并不相同,但我在这里也使用了相同的名称。创建函数的两种方法有区别吗?有区别。通过函数定义,整个定义将被提升: foo(5); // Pops up 5 function foo(n) { alert(n); } 而在var中,声明被挂起,但分配未被挂起: foo(5); // Error! var f
var setTheme = function (color) {
};
function setTheme(color) {
};
函数名实际上并不相同,但我在这里也使用了相同的名称。创建函数的两种方法有区别吗?有区别。通过函数定义,整个定义将被提升:
foo(5); // Pops up 5
function foo(n) {
alert(n);
}
而在var
中,声明被挂起,但分配未被挂起:
foo(5); // Error!
var foo = function(n) {
alert(n);
};
我注意到的另一个区别是,在ECMAScript 5严格模式下的Google Chrome Canary(目前,至少我还没有在许多其他浏览器中尝试过)上,函数定义的嵌套深度不能超过一级:
!function() {
'use strict';
function Blah() {
function Lol() { // Error.
}
}
}();
这个问题已经回答了很多次。有很多方法可以称之为这些。据我所知,第一个是函数赋值,第二个是函数声明。第一个将提升
setTheme
到最近范围的顶部,但在到达实际分配的位置之前,它不会被定义为函数。第二个将把函数setTheme
提升到顶部,这样您甚至可以在声明该函数之前使用它。在我看来,始终使用第一个。所以,
获取集的JS函数
如果您需要一个私有实用程序来获取/设置/删除模型值,那么您可以像这样将函数声明为变量。这对于在函数计算声明时分配变量很有用
用于:简单版本
这是用JavaScript声明函数的最简单方法。比如说,我们想编写一个名为setTheme(color)
的简单函数,它只接受一个参数color
,对对象执行简单的color
,或者返回值。这里有一些方法可以让你做到这一点
5种不同的方式:有趣的阅读:
看一看。第一种方法通常用作回调函数。这主要是控制函数执行的顺序。
var setTheme = function (color) {
};
function setTheme(color) {
};