function test() {
var test_array = [];
}
var arrayList = new Array();
arrayList[0] = new test();
arrayList[0].test_array[0] = "test";
我正在尝试创建一个数组,将对象初始化为该数组的成员,然后将文本值分配给该对象内的数组。但是对象内的数组给出了
TypeError: arrayList[0].test_array is undefined
当我尝试将字符串分配给内部数组时。我仍然是javascript的新手,所以在这种情况下最佳实践的任何提示都将非常感激。
答案 0 :(得分:4)
语句var test_array = [];
创建一个局部变量,该变量在其定义的范围之外是不可见的。这里需要的是定义为对象实例属性的变量。在this
函数中使用test
引用:
function test() {
this.test_array = [];
}
有关JavaScript范围的更多信息,请阅读the documentation。
答案 1 :(得分:2)
var
声明实际上并不修改实例。它们只是构造函数本身的本地范围。
要定义实例的属性,您必须修改this
:
function test() {
this.test_array = [];
}
答案 2 :(得分:1)
更新小提琴: http://jsfiddle.net/5t62z/3/
你的功能没有返回任何东西。如果您注意到我的更新,我现在将返回一个具有test_array
属性的对象。
function test() {
return {
test_array: []
};
}