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块之外访问。
