gpt4 book ai didi

javascript - this.function 不是函数错误,而是函数存在

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:18:21 24 4
gpt4 key购买 nike

我有一些代码来获取日历事件并显示它们。仅当自上次调用以来事件发生变化时才会更新显示。

var calendar = {

events = null,

display_calendar_events : function (data) {
// Some display stuff...
},

get_events: function() {

// Get messages for calendar
$.getJSON("/ajax/get-events/", function(json){

var new_events = json.data;
// If events haven't changed, do nothing
if (this.events === new_events) {
return true;
}

// Events have changed.
// Save new events
this.events = new_events;

// Display new events
this.display_calendar_events(json);
});
},
}

我称之为:

calendar.get_queued_events();

问题是,我遇到了错误“this.display_calendar_events is not a function”(最后一行代码)。但是如果我将这一行更改为:

calendar.display_canendar_events(josn)

它有效。使用“this.events”存储旧事件在这两种情况下都可以正常工作。

有人能给我解释一下吗? “这个”怎么能对某些东西起作用而不对其他东西起作用?谢谢。

最佳答案

在 jQuery AJAX 回调中,this 引用 ajax 请求对象。尝试在 AJAX 调用之前使用 var self = this;,并在回调中使用 self.display_calendar_events()

或者,您可以直接引用 calendar.display_calendar_events()。但这并不像 self 方法那样容易重构。

关于javascript - this.function 不是函数错误,而是函数存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9263694/

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