我是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函数吗?有人可以建议更好的重写如何做到这一点?
提前致谢。
答案 0 :(得分:7)
你几乎是对的。您应该使用对象:
codeArray = {
create:function() {
// ...
},
// ...
print:function() {
// ...
}
};
然后你可以打电话:
codeArray.create();
codeArray.print();