[英]Why reassigning an object defined in the outer function to a same variable name as declared outside is giving error?
為什么在下面的代碼中未定義b
typeof
?
var b = function() {}
var a = function() {
var b = b
console.log('typeof function_b:', typeof b)
}
a()
因為您要使用var b
聲明在a
函數范圍內初始化新變量。
var b
被初始化並在賦值之前運行( b = b
),因此它會將剛初始化的空值賦給它自己。
要更改輸出,您可以跳過var
聲明,而typeof b
輸出“ function”:
var b = function() {}
var a = function() {
b = b;
console.log('typeof function_b:', typeof b); // Outputs "function"
}
a();
這是因為先聲明變量( var b
),然后將其賦值為b = b
。 聲明后,在該作用域中undefined
,因此您要為其分配undefined
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.