3

我是 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 函数的封装是不好的做法吗?有人可以建议更好地重写如何做到这一点吗?

提前致谢。

4

1 回答 1

7

你几乎是对的。您应该改用一个对象:

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

然后你可以调用:

codeArray.create();
codeArray.print();
于 2013-04-23T18:32:12.677 回答