好的,所以我使用以下if语句预设我正在制作的应用程序的某些变量:
if(localStorage.s1 == undefined) {
localStorage.s1= 50
}
if(localStorage.s2 == undefined) {
localStorage.s2= 100
}
这很好用。这些预设大约有12个,所以我通过使用以下函数重新考虑了它:
function setterfunc(targetedelement, presetting) {
if(localStorage.targetedelement == undefined) {
localStorage.targetedelement = presetting;
}
}
但是当我用
打电话时setterfunc(foobar, 342)
Google Chrome控制台告诉我:
Uncaught ReferenceError: foobar is not defined
有任何帮助吗?重复if语句的冗长方式非常有效。
答案 0 :(得分:1)
使用括号表示法:
function setterfunc(targetedelement, presetting) {
if(localStorage[targetedelement] == undefined) {
localStorage[targetedelement] = presetting;
}
}
setterfunc('foobar', 342)
或setItem
和getItem
访问者:
function setterfunc(targetedelement, presetting) {
if(localStorage.getItem(targetedelement) == undefined) {
localStorage.setItem(targetedelement) = presetting;
}
}
setterfunc('foobar', 342)
附注:注意localStorage
只存储字符串。因此,如果您想处理数字,您最好解析从本地存储中读取的内容。
答案 1 :(得分:0)
错误的原因是需要引用字符串foobar,否则JS正在寻找此名称的变量:
slidersetter('foobar', 342);
但您的功能名为setterfunc
,而不是slidersetter
。