JS: Почему метод класса, вызванный через коллбэк, не имеет контекста?
потому что в JS нет классов и их методов, есть объекты и функции. Передавая "метод" объекта в качестве колбэка вы делаете его просто функцией, и она теряет свой контекст.
То есть this будет равен тому, в каком контексте мы вызываем функцию. Вызывая foo.bar() у нас контекст будет указывать на foo, но мы можем присвоить эту функцию любому объекту и таким образом сменить контекст.
Читайте про контекст вызова в JS и обретете счастье.
Когда-нибудь мы сможем писать так. (хотя, babel + stage-0 уже помогают в этом)function wrapper(callback) {
    callback();
}
wrapper(::test.method); // wrapper(test.method.bind(test));