function testFun(){ var job1 = new work; var job2 = new work; var p1 = new person; var p2 = new person; p1.wallet = job1.payday(); p2.wallet = job2.payday(); p1.wallet.add(job1.payday()); p2.wallet.add(job2.payday()); } 你原程序中p1.wallet和p2.wallet指向了同一个对象,所以操作都是同步的,应该分别用不同的对象.
this.add = function(obj){
amount = amount + obj.getAmount();
}
obj.getAmount()==amount
变成了2*amount
var job1 = new work;
var job2 = new work;
var p1 = new person;
var p2 = new person;
p1.wallet = job1.payday();
p2.wallet = job2.payday();
p1.wallet.add(job1.payday());
p2.wallet.add(job2.payday());
}
你原程序中p1.wallet和p2.wallet指向了同一个对象,所以操作都是同步的,应该分别用不同的对象.