Ain*_*ine 3 javascript function this
我有一些代码来获取日历事件并显示它们.自上次调用后,如果事件已更改,则仅更新显示.
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);
});
},
}
Run Code Online (Sandbox Code Playgroud)
我称之为:
calendar.get_queued_events();
Run Code Online (Sandbox Code Playgroud)
问题是,我收到错误"this.display_calendar_events不是函数"(最后一行代码).但是,如果我将此行更改为:
calendar.display_canendar_events(josn)
Run Code Online (Sandbox Code Playgroud)
有用.使用"this.events"存储旧事件在两种情况下都能正常工作.
谁可以给我解释一下这个?"这个"如何为某些东西而不是其他东西工作?谢谢.
在jQuery AJAX回调中,this引用ajax请求对象.var self = this;在AJAX调用之前尝试使用,并在回调使用中使用self.display_calendar_events().
或者,您可以直接引用calendar.display_calendar_events().但这并不像self方法那样容易重构.