我有一個相當簡單的JavaScript對象與一些對象方法,我試圖從內部訪問/修改數組中的信息(存儲在全局變量中)這些方法之一。這裏是我的代碼:從Javascript中使用對象方法訪問全局變量
var list= [];
function person(firstname, age){
this.firstname = firstname;
this.age = age;
this.addPerson = function(){
list.push({firstname, age });
}
this.addPerson();
this.changeName = function (name, newname) {
var i = 0
for (i; i < list.length; i++);{
if (list[i].firstname === name){
list[i].firstname = newname;
}
}
}
}
var person = new Bunny('Jim', 20);
var person = new Bunny('Sally',40);
person.changeName('Jim', 'John');
當一個新人被創建時,他們會自動添加到我的列表中。當我調用changeName時,我想輸入我想要更改的名稱以及它應該是的新名稱。但是,我收到錯誤消息「Can not read property'firstname'of undefined,」這讓我認爲changeName無法訪問我的列表。
函數'addPerson'的要點是什麼?你爲什麼不直接在構造函數中「推」人? – Lewis
我寫了addPerson,因爲我想在創建一個新對象時立即將其推送到列表中。我無法調用addPerson();在構造函數內....我相信有更好的方法來做到這一點。你會怎麼做? – bjorkland
只看到我的答案更好的方法。 – Lewis