我试图理解为什么这段代码的行为方式如下:
测试.js
var User;
console.dir(User);
function User(name) { // User = function(name) { ... seems not to be the same?
this.name = name;
}
节点测试.js
[Function: User]
为什么在语句User
之前有一个值?function()
我试图理解为什么这段代码的行为方式如下:
测试.js
var User;
console.dir(User);
function User(name) { // User = function(name) { ... seems not to be the same?
this.name = name;
}
节点测试.js
[Function: User]
为什么在语句User
之前有一个值?function()
吊装!http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html
var
和function
语句会自动提升到脚本的顶部!
这允许在定义函数之前使用函数,如下所示:
dothis();
function dothis() { alert('wow'); }
像这样的编辑 function
语句不受影响:
myfunc(); // won't work
var myfunc = function() { alert('nope'); }
该函数是在解析时定义的。
请参考:var functionName = function() {} vs function functionName() {}