当我向beats数组中添加项并控制台输出User时,得到的数组项数是正确的。但是当我检查.length属性时,总是得到1。
尝试调用索引将始终返回'undefined',例如:
Tom.beats[1]
我认为我可能缺少一些显而易见的东西,但是这超出了我的能力范围。我怀疑我可能误用了.push
方法,但我不确定。非常感谢任何帮助!
(使用Chrome开发工具)//The USER
function User(name, role){
this.beats = [ ];
this.name = name;
this.role = role;
// add beats to beats array
this.addBeats = function(beats){
return this.beats.push(beats);
};
}
// Three New Instances. Three New Users.
var Mal = new User("Mal", "Rapper");
Mal.addBeats(["love", "cash"]);
var Dan = new User("Dan", "Producer");
Dan.addBeats(["cake", "dirt", "sally-mae"]);
var Tom = new User("Tom", "Producer");
Tom.addBeats(["Fun", "Little", "Samsung", "Turtle", "PC"]);
// Check for position in beats array
console.log(Tom.beats);
console.log(Mal.beats);
console.log(Dan.beats);
console.log(Mal.beats[1]);
console.log(Dan.beats[1]);
console.log(Tom.beats[1]);
this
指针在addBeats函数中是否混淆了。你能否在JS调试器中逐步执行它?(IE9有一个)。 - Dai