在“ if”语句中声明和分配的变量是否仅在该“ if”块中或整个函数中可见?
我在下面的代码中这样做正确吗?(似乎可以工作,但是多次声明“变量结构”似乎很尴尬)有没有更干净的解决方案?
function actionPane(state) {
if(state === "ed") {
var structure = {
"element" : "div",
"attr" : {
"class" : "actionPane"
},
"contains" : [{
"element" : "a",
"attr" : {
"title" : "edit",
"href" : "#",
"class" : "edit"
},
"contains" : ""
}, {
"element" : "a",
"attr" : {
"title" : "delete",
"href" : "#",
"class" : "delete"
},
"contains" : ""
}]
}
} else {
var structure = {
"element" : "div",
"attr" : {
"class" : "actionPane"
},
"contains" : [{
"element" : "a",
"attr" : {
"title" : "save",
"href" : "#",
"class" : "save"
},
"contains" : ""
}, {
"element" : "a",
"attr" : {
"title" : "cancel",
"href" : "#",
"class" : "cancel"
},
"contains" : ""
}]
}
}
return structure;
}
1)变量对于整个功能范围都是可见的。因此,您只应声明一次。
2)您不应在示例中两次声明变量。我建议在函数顶部声明变量,然后稍后再设置值:
function actionPane(state) {
var structure;
if(state === "ed") {
structure = {
...
为了获得有关JavaScript的出色反馈,我强烈建议使用Douglas Crockford的JSLint。它将扫描您的代码以查找常见错误,并找到清除建议。
我还建议阅读小书JavaScript:The Good Parts。它包含许多有关编写可维护JS代码的技巧。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句