Показать сообщение отдельно
  #4 (permalink)  
Старый 15.09.2020, 19:44
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,744

А зачем authInfo делать методом какого то класса?
Методы класса нужны, что бы как то работать с объектами членами класса.
Я так понимаю, что в VK.Auth.getLoginStatus нужно передать какую то функцию, но эта функция никак не связана ни с каким объектом
Если так уж нужно, что бы она как-то имела доступ с какому то объекту, да еще через this то можно так

class C1 {
 
 f1() { console.log(this); console.log("f1"); }
 

}

 authInfo(response) {
    if (response.session) {
    if (response.session.user) {
            var user = response.session.user;
        }
    }
    this.f1(); // работает
    // c1.f1(); // - не нужно
 }

let c1 = new C1();
VK.Auth.getLoginStatus(authInfo.bind(c1));

let c2 = new C1();
VK.Auth.getLoginStatus(authInfo.bind(c2));


Если очень хочется, привязать ее к классу (ну, кажется, что код яснее, понятнее, красивее)
то можно так

class C1 {
 
 f1() { console.log(this); console.log("f1"); }
 
  static authInfo(response) {
    if (response.session) {
    if (response.session.user) {
            var user = response.session.user;
        }
    }
    this.f1(); // будет работать
    // c1.f1(); // не нужно
 }
}
let c1 = new C1();
VK.Auth.getLoginStatus(C1.authInfo.bind(c1));


без bind тут трудно обойтись, т.к. внутри VK.Auth.getLoginStatus переданная функция вызывается без привязки к какому либо объекту.

Последний раз редактировалось voraa, 15.09.2020 в 19:55.
Ответить с цитированием