我正在尝试构建一些有趣和学习的程序。我有以下问题:
function Hero(name) {
this.name = name;
this.addItem = function(item) {
this.items = this.items || [];
this.items.push(item);
};
// ....
this.viewItinerary = function() {
this.items.map(function(currItem){
return currItem;
});
};
}
var alex = new Hero("Alex");
alex.addItem("Sword");
alex.addItem("Shield");
console.log(alex.viewItinerary());
// returns undefined. why does it not return items in array?
如果我用console.log(currItem)替换return语句就行了。那么为什么我的代码返回undefined?有什么想法吗?
由于
答案 0 :(得分:0)
因为你的功能没有返回任何东西
尝试:
this.viewItinerary = function() {
return this.items;
};
Array.map也返回一个新数组。
答案 1 :(得分:0)
map
返回一个新数组,除非你返回它的结果,viewItinery
的返回类型是未定义的,因此为什么这行
console.log(alex.viewItinerary());
记录未定义。要解决此问题,只需添加return
this.viewItinerary = function() {
return this.items.map(function(currItem){
return currItem;
});
};