你必须知道,有倍数类型的变量。
你有全局变量是分配窗口(不是一个好的做法)。您可以这样声明它:
window.varName = ...;
window['varName'] = ...;
varName = ...;
有变量的作用域,那就是声明变量通常的方式:
var varName = ...;
这些变量是由内部范围访问藏汉而不是由外部范围访问。
还有对象属性。您创建一个对象,并指定值:
var obj = {};
obj.varName = ...;
obj['varName'] = ...;
如果你能看到,也没有办法,你可以用动态字符串访问范围的变量,你需要的对象或全局变量。 :
function changeMain(page) {
//Global variable, not recommended
window.nearbyCows = "<a>tehe</a>";
window.nearbyChickens = "<b>lol</b>";
window.search = "<i>meh</i>";
$("main").html(window[page]);
}
或:
var obj = {} //Declare outside if you want to access it outside the function
function changeMain(page) {
// var obj = {}; //or inside if you want it to be a private variable
//Object properties, recommended
obj.nearbyCows = "<a>tehe</a>";
obj.nearbyChickens = "<b>lol</b>";
obj.search = "<i>meh</i>";
/*Alternative declaration, faster to process :
obj = {
nearbyCows : "<a>tehe</a>",
nearbyChickens : "<b>lol</b>",
search : "<i>meh</i>"
}*/
$("main").html(obj[page]);
}
'nearbyCows'是在此函数的局部变量。它不在调用者的范围内,除非它有自己的同名变量。 – Barmar
您只能使用'window [name]'来访问_global_变量,而不是局部变量。 – Barmar
@ A.Wolff页面的值可以是三个附近的C,附近的Chickenso或搜索的其中之一(否则它将无法设置html) – jskidd3