JavaScript嵌套功能并使用它们

时间:2013-04-23 18:28:53

标签: javascript

我是JavaScript的新手,来自Java背景。我正在尝试编写一个非常简单的JavaScript应用程序,但我遇到了一些问题。我想在JavaScript中复制一种类结构,我遇到的问题与函数内部函数的范围有关。

我想创建一个像这样的结构

function codeArray() {
    function create() {
        addElement( prop1, prop2,) {
            //create an element
        }

        function traverse(object) {
            //recursively go through some nested list data structure
            addElement(asd, 4534);
        }
    }

    function deleteElement() {
        //delete a single element from an array
    }

    print() {
        //print array;
    }
}

something.click(function() {
    codeArray.create();
    codeArray.print();
});

所以我遇到的问题是因为嵌套在codeArray中的函数的范围我无法从外部codeArray访问它们。封装的不良做法是摆脱包装器codeArray函数吗?有人可以建议更好的重写如何做到这一点?

提前致谢。

1 个答案:

答案 0 :(得分:7)

你几乎是对的。您应该使用对象:

codeArray = {
    create:function() {
       // ...
    },
    // ...
    print:function() {
       // ...
    }
};

然后你可以打电话:

codeArray.create();
codeArray.print();