このコードがこのように動作する理由を理解しようとしています。
test.js
var User;
console.dir(User);
function User(name) { // User = function(name) { ... seems not to be the same?
this.name = name;
}
ノード test.js
[Function: User]
ステートメントUserの前に値があるのはなぜですか?function()
このコードがこのように動作する理由を理解しようとしています。
test.js
var User;
console.dir(User);
function User(name) { // User = function(name) { ... seems not to be the same?
this.name = name;
}
ノード test.js
[Function: User]
ステートメントUserの前に値があるのはなぜですか?function()
巻き上げ!http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html
varfunctionステートメントは自動的にスクリプトの先頭に持ち上げられます。
これにより、次のように、関数を定義する前に使用できます。
dothis();
function dothis() { alert('wow'); }
次のような編集 functionステートメントは影響を受けません。
myfunc(); // won't work
var myfunc = function() { alert('nope'); }
その関数は解析時に定義されます。
参照してください: var functionName = function() {} vs function functionName() {}