3

このコードがこのように動作する理由を理解しようとしています。

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()

4

2 に答える 2

5

巻き上げ!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'); }
于 2013-09-21T00:34:12.450 に答える
2

その関数は解析時に定義されます。

参照してください: var functionName = function() {} vs function functionName() {}

于 2013-09-21T00:33:20.070 に答える