IF语句中的javascript变量范围

约瑟夫 :

在“ 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;
}
过度Zealous:

1)变量对于整个功能范围都是可见的因此,您只应声明一次。

2)您不应在示例中两次声明变量。我建议在函数顶部声明变量,然后稍后再设置值:

function actionPane(state) {
    var structure;
    if(state === "ed") {
        structure = {    
            ...

为了获得有关JavaScript的出色反馈,我强烈建议使用Douglas Crockford的JSLint它将扫描您的代码以查找常见错误,并找到清除建议。

我还建议阅读小书JavaScript:The Good Parts它包含许多有关编写可维护JS代码的技巧。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章