Javascript Jquery";这是一个;。在ajax成功时MyFunctionName不可用?但在这之前还可以

Javascript Jquery";这是一个;。在ajax成功时MyFunctionName不可用?但在这之前还可以,javascript,jquery,Javascript,Jquery,有人能帮忙吗,我对关键字this有个问题。。在进入ajax调用之前,它是可用的,但是在进入Success时。我的“this”可用,但不包含相同的信息,即我希望调用的方法。。这个例子说明了我的意思 如果有任何帮助,我将不胜感激。在执行ajax之前,可以使用此.isodatereviser。。然后当成功来临时。。此.isoDateReiver未定义 var data = new Object(); data.year = this.today = new Date().getFullYear();

有人能帮忙吗,我对关键字this有个问题。。在进入ajax调用之前,它是可用的,但是在进入Success时。我的“this”可用,但不包含相同的信息,即我希望调用的方法。。这个例子说明了我的意思

如果有任何帮助,我将不胜感激。在执行ajax之前,可以使用此.isodatereviser。。然后当成功来临时。。此.isoDateReiver未定义

var data = new Object();
data.year = this.today = new Date().getFullYear();

this.isoDateReviver("yes", "yes");                //// THIS WORKS HERE

$.ajax({
    type: "POST",
    url: "MyService.aspx/GetHolidays",
    data: JSON.stringify(data),
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) {
        var holidays = JSON.parse(msg.d,
            this.isoDateReviver);             // THIS DOES NOT WORK its undefined

        Calendar.initalizeHolidays(holidays);
    },
    error: function (msg) {
        alert(error);
    }
}); 

这是因为success函数在不同的范围内执行

您需要执行以下操作:

var me = this;

$.ajax({
    // etc
success: function(msg) {
    var holidays = JSON.parse(msg.d, me.isoDateReviver);

这是因为success函数在不同的范围内执行

您需要执行以下操作:

var me = this;

$.ajax({
    // etc
success: function(msg) {
    var holidays = JSON.parse(msg.d, me.isoDateReviver);
见:

成功时调用的函数与上次调用此.isoDateReceiver时的上下文不同。

请参阅:

成功时调用的函数与上次调用this.isoDateReceiver的上下文不在同一上下文中