Если я вызываю функцию find APP.count(), все в порядке. Я получаю правильный результат, но когда я вызываю APP.add(), я получаю this.basket не определено. Я не понимаю, почему это происходит?Объект, возвращающийся как undefined
var APP = (function() {
var
basket = [
{ id: 100, price: 10, description: '', name: 'item one', quantity: 10, url: '' },
{ id: 200, price: 20, description: '', name: 'item two', quantity: 15, url: '' }
],
find = function(item) {
for(var i = 0; i < this.basket.length; i++) {
if(this.basket[i].id === item) {
return i
}
}
return null
},
add = function(item) {
var itemFound = find(item)
},
count = function() {
var total = 0;
for(var i = 0; i < this.basket.length; i++) {
total = total + this.basket[i].quantity
}
return total
};
return {
basket: basket,
find: find,
add: add,
count: count
};
})();
APP.count() /* works */
APP.add() /* returns this.basket as undefined */
Edited. вам нужно вызвать 'this.find (item)' вместо 'find (item)' Я думаю – Hacketo
Спасибо, что это работало, но я не понимаю, как корзина не является свойством APP? – UsmanA
Я отредактировал свой комментарий, потому что я не видел, что функция возвращает объект с одинаковыми свойствами, оба будут работать. – Hacketo