onload函数中的Javascript变量范围
这个问题在这里已经有了答案:
您正在访问b
之外的函数声明。
本地范围是功能导向的。
所以在:
window.onload = function() {
var b = "b";
var p = new Person();
p.doIknowAorB()'
}
b
是连接到onload的匿名(未命名)函数的局部变量。
但是在函数doIknowAorB中的p
:
Person.prototype = function(){
function doIknowAorB() {
console.log(a);
console.log(b);
};
return {
"doIknowAorB": doIknowAorB
}
}();
显然没有b
。 你可以访问a
因为它是一个全局变量。
因为b
变成了匿名函数的局部变量或私有变量。
JavaScript中的范围是功能导向的。
所以,它不能在该function
块之外访问。