【发布时间】:2011-08-06 05:01:56
【问题描述】:
在“if”语句中声明和分配的变量是否仅在该“if”块或整个函数中可见?
我在下面的代码中做对了吗? (似乎可行,但多次声明“var 结构”似乎很尴尬)任何更清洁的解决方案?
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;
}
【问题讨论】:
-
请注意,您也可以这样做:
if (state === "ed") { return { ... } } else { return { ... } }而不是使用变量。
标签: javascript variables if-statement scope