3

在我的代码中,我有以下内容:

var setTheme = function (color) {

};

function setTheme(color) {

};

函数名称并不完全相同,但我在这里放了相同的名称。创建函数的两种方式有区别吗?

4

3 回答 3

3

它们是有区别的。使用函数定义,整个定义被提升:

foo(5); // Pops up 5

function foo(n) {
    alert(n);
}

而 with var,声明被提升,但分配不是:

foo(5); // Error!

var foo = function(n) {
    alert(n);
};

我注意到的另一个区别是,在 ECMAScript 5 严格模式下的 Google Chrome Canary(目前,至少我还没有在许多其他浏览器中尝试过)上,函数定义的嵌套深度不能超过一层:

!function() {
    'use strict';

    function Blah() {
        function Lol() { // Error.
        }
    }
}();
于 2012-07-05T03:38:38.467 回答
1

所以,

获取设置的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/

于 2012-07-05T03:41:23.117 回答
0

这已经回答了很多次了。有很多方法可以调用这些。据我了解,第一个是函数赋值,第二个是函数声明。第一个将提升setTheme到最近范围的顶部,但它不会被定义为函数,直到它到达实际分配的位置。第二个将函数提升到setTheme顶部,因此您甚至可以在声明之前使用该函数。IMO,始终使用第一个。

于 2012-07-05T03:38:56.443 回答