gpt4 book ai didi

javascript - 返回 undefined object

转载 作者:行者123 更新时间:2023-12-03 09:37:25 25 4
gpt4 key购买 nike

如果我调用查找函数 APP.count() 一切正常,我会得到正确的结果,但是当我调用 APP.add() 时,我得到 this.basket is 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 */

最佳答案

问题来自find(item)的调用在 add功能。

调用find这样的函数不会使用 APP 的上下文对象为this ,所以this.basket将是未定义的。

您可以检查当前上下文是什么 this用一个简单的console.log(this)

所以如果你想调用find APP上下文中的函数,在add您需要调用的函数 this.find(item)

关于javascript - 返回 undefined object ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31291975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com