私のコードには次のものがあります。
var setTheme = function (color) {
};
function setTheme(color) {
};
関数名は実際には同じではありませんが、ここに同じ名前を付けました。関数を作成する 2 つの方法に違いはありますか?
私のコードには次のものがあります。
var setTheme = function (color) {
};
function setTheme(color) {
};
関数名は実際には同じではありませんが、ここに同じ名前を付けました。関数を作成する 2 つの方法に違いはありますか?
違いがあります。関数定義を使用すると、定義全体が巻き上げられます。
foo(5); // Pops up 5
function foo(n) {
alert(n);
}
一方、var
では、宣言は引き上げられますが、代入はそうではありません。
foo(5); // Error!
var foo = function(n) {
alert(n);
};
私が気付いたもう 1 つの違いは、ECMAScript 5 の厳密モードの Google Chrome Canary (現在、少なくとも、他の多くのブラウザーで試したことはありません) では、関数定義を複数のレベルの深さにネストすることはできないということです。
!function() {
'use strict';
function Blah() {
function Lol() { // Error.
}
}
}();
そう、
get set の JS 関数
var setTheme = function (color) {
};
モデル値を取得/設定/削除するためのプライベート ユーティリティが必要な場合は、次のように関数を変数として宣言できます。これは、関数によって計算された宣言時に変数を割り当てるのに役立ちます。
対象: 簡易版
function setTheme(color) {
};
これは、JavaScript で関数を宣言する最も簡単な方法です。たとえば、単純setTheme(color)
に 1 つのパラメーターを取り、オブジェクトに対してcolor
単純な操作を実行color
するか、値を返すという単純な関数を書きたいとします。まさにこれを行うためのいくつかの方法を次に示します。
5 さまざまな方法: 興味深い読み物:
http://www.jquery4u.com/jquery-functions/5-ways-declare-functions-jquery/
これは何度も答えられています。これらを呼び出すには多くの方法があります。私が理解しているように、最初のものは関数の割り当てであり、2番目のものは関数の宣言です。最初のものは最も近いスコープの一番上に巻き上げsetTheme
られますが、実際に割り当てられた場所に到達するまで関数として定義されません。2 番目のものは関数を一番上に持ち上げるsetTheme
ので、宣言される前でもこの関数を使用できます。IMO、常に最初のものを使用してください。