在 Javascript 对象 ( testObject
) 中,我使用来自jQuery.getJSON
回调函数的对象填充数组。该数组首先被定义为对象属性this.publicArray
,var passedArray = this
并使内部回调函数能够访问公共对象。
使用对象的公共方法,我可以将填充数组的内容公开为对象的子属性,但不能直接公开数组的内容。
function testObject() {
this.publicArray = [];
var passedArray = this;
$.getJSON('http://...',
function(data) {
passedArray.publicArray = [{key:'value'},{key:'value'},{key:'value'}]
});
this.testMethod = function() {
console.log(this);
console.log(this.publicArray);
};
}
myObject = new testObject(); // [1]
myObject.testMethod(); // [2]
返回:
[1] > thisArray: Array[3]
0: Object
key: "value"
1: Object
key: "value"
2: Object
key: "value"
length: 3
[2] > []
如果我用完全相同的对象而不是从回调函数填充数组,它的行为与我期望的一样,所以我不明白:
- 如何从对象方法访问数组的内容
- 为什么数组内容对开发人员工具可见而不是我的脚本。
谢谢 - 请随时就我搞砸的任何其他事情对我进行教育。