ajax выдает undefined, хотя через лог - всё ок

Сама ф-ция аякса, рабочая 100%

function ajax(url, data, after=function(e){}, type='GET') {
    $.ajax({type:type, url:url, data:data, dataType: 'json', success: function(msg) {
        console.log(this.type +'/' + this.url);
        clearLoadingButtons();
        if(typeof(after) === 'function') after(msg);
    }, error: function (msg) {
        clearLoadingButtons();
        alert(msg.responseText);
    }});
}

Вот мой код:

class language {
    constructor() {
        this.phrases = {};
    }
    loadPhrases(after) {
        ajax('./js/pages/phrases.json', '', function(msg) {
            console.dir(msg); //это все ок главное, выдает все в консоли, все отлично
            this.phrases = msg; //а здесь пишет "Cannot set property 'phrases' of undefined"
        });
    }
}

В чем проблема? В консоль логе msg - это обычный объект, все ок с ним. Пробовал узнать даже через typeof - пишет обьект. А когда пытаюсь присвоить this.phrases = msg, пишет ВАША ПЕРЕМЕННАЯ msg = undefined?!!??!?!?! Что за бред, за 5 лет, впервые сталкиваюсь с подобным. 100000000 раз парсил json, присваивал переменным класса, json енкодированный в php файле и впервые такой бред. Сейчас решил создать кастомный файл, дабы не напрягать сервер. И он мне дичь эту пишет.


Ответы (0 шт):