【发布时间】:2010-05-06 08:19:56
【问题描述】:
我有一个 person 对象,想将它存储到我创建的全局 ArrayCollection 中。 在正常范围内效果很好:
var s = new ArrayCollection();
s.add(new person("Knud", "Mikkelsen", 35));
问题是当我想在我的 jQuery 函数“mainFunction”中添加人员时。
我似乎无法正确理解。我知道这与范围有关,我必须在函数中包装一些东西,比如在我的 ArrayCollection 中。 请帮助我 - 非常感谢。
function ArrayCollection() {
var myArray = new Array;
return {
empty: function () {
myArray.splice(0, myArray.length);
},
add: function (myElement) {
myArray.push(myElement);
},
getAll: function () {
return myArray;
}
}
}
function person(firstName, lastName, age) {
this.firstName = firstName;
this.lastName = lastName;
this.age = parseInt(parseFloat(age));
}
function mainFunction() {
//....
var s = new ArrayCollection();
s.add(new person("Knud", "Mikkelsen", 35));
$.getJSON(url, function (data) {
for (var x = 0; x < data.length; x++) {
var myPerson = new person(data[x].FirstName.toString(), data[x].LastName.toString(), data[x].Age.toString());
s.add(myPerson);
}
});
alert(drawArray(s.getAll()));
}
function drawArray(myArray) {
var v = "";
for (var i = 0; i < myArray.length; i++) {
v += myArray[i].firstName + " " + myArray[i].lastName + " (" + myArray[i].age + ")\n";
}
return v;
}
【问题讨论】:
标签: javascript jquery scope