以下是我正在编写的教科书,但有些内容没有意义。有人可以向我解释我如何能够从全球范围访问本地变量“secret”吗?当我运行代码时,输出为'100'。我认为无法从函数外部访问函数内部声明的变量。这里发生了什么,我可以将“秘密”设置为100?
var set, get;
function val() {
var secret = 0;
set = function (arg) {
if (typeof(arg) === "number") {
secret = arg;
}
};
get = function () {
return secret;
};
}
secret = 100;
document.write(secret);
输出> 100
顺便说一句,教科书最初具有作为即时功能的功能。我改为上述希望会导致不同的结果。
答案 0 :(得分:0)
您拥有全局和本地secret
变量。
// Creating a global variable, not affecting the one inside val
secret = 100;
// This is accessing the global variable
document.write(secret);
如果您实际运行val
功能,则会发现它们不同
var set, get;
function val() {
var secret = 0;
set = function(arg) {
if (typeof(arg) === "number") {
secret = arg;
}
};
get = function() {
return secret;
};
}
val();
secret = 100;
document.write("global secret = " + secret + '<br />');
set(5);
document.write("private secret = " + get() + '<br />');
document.write("global secret unaffected = " + secret + '<br />');
&#13;