Показать сообщение отдельно
  #3 (permalink)  
Старый 15.09.2020, 18:56
Новичок на форуме
Отправить личное сообщение для igogo333 Посмотреть профиль Найти все сообщения от igogo333
 
Регистрация: 21.09.2019
Сообщений: 9

Спасибо за ответ!

Цитата:
Это как? Приведите пример. this может ссылаться только на член класса с которым вызван метод f2
например, вот:

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(c1.authInfo);


здесь или контекст this не передается, если вызывать VK.Auth.getLoginStatus(c1.authInfo);
или аргумент response не передается, если вызывать VK.Auth.getLoginStatus(c1.authInfo());


Цитата:
Это совсем не нормально
А если вы строку 6 переделаете
let c2 = new C1();
Что будет обозначать c1 в методе f3?
Да, это проблема. Но все-таки вопрос: проблема только в потенциальной угрозе переименования?
А если предположить, что имя класса всегда будет одним и тем же, то других проблем нет с тем чтобы использовать всегда имя класса вместо this?
Или там еще какие-то могут вылезти проблемы?

Последний раз редактировалось igogo333, 15.09.2020 в 18:59.
Ответить с цитированием