在我的代码中,我有以下内容:
var setTheme = function (color) {
};
function setTheme(color) {
};
函数名称实际上并不相同,但我在此处添加了相同的名称。创建函数的两种方式有区别吗?
答案 0 :(得分:3)
有区别。使用函数定义,整个定义将被挂起:
foo(5); // Pops up 5
function foo(n) {
alert(n);
}
鉴于var
,声明已悬挂,但作业不是:
foo(5); // Error!
var foo = function(n) {
alert(n);
};
我注意到的另一个不同之处是,在Google Chrome Canary上(目前至少,我还没有尝试过很多其他浏览器)在ECMAScript 5严格模式下,函数定义不能嵌套多个深度:
!function() {
'use strict';
function Blah() {
function Lol() { // Error.
}
}
}();
答案 1 :(得分:1)
<强>因此,强>
get set的JS函数
var setTheme = function (color) {
};
如果您需要私有实用程序来获取/设置/删除模型值,那么您可以将函数声明为这样的变量。这可以用于在函数计算的声明上分配变量。
对于: 简单版
function setTheme(color) {
};
这是在JavaScript中声明函数的最简单方法。比方说,我们想编写一个名为setTheme(color)
的简单函数,它只接受一个参数color
,在对象上做一个简单的color
或返回值。您可以通过以下几种方式完成此操作。
5种不同的方式:有趣的阅读:
http://www.jquery4u.com/jquery-functions/5-ways-declare-functions-jquery/
答案 2 :(得分:0)
这已被多次回答。有很多方法可以称呼它们。据我了解,第一个是功能分配,第二个是功能声明。第一个将setTheme
提升到最近范围的顶部,但它不会被定义为函数,直到它到达实际分配的位置。第二个将函数setTheme
提升到最顶层,这样你就可以在声明它之前使用它。 IMO,始终使用第一个。