Javascript objects? Ребята вопрос в студию! ;)var test = {
getText: function(some) {
},
otherSome: function(someOther) {
this.getText(); // Не работает
test.getText(); // Работает
}
}
Почему так?
ЗЫ. А как реализовать такую штуку...? Та которая не работает...

21 Авг 2019 в 07:04
215 +1
1
Ответы
1

В функции otherSome метод getText вызывается как this.getText(), что означает, что обращение происходит к методу объекта, на котором была вызвана функция. Однако, в данном случае внутри функции otherSomethis указывает на объект test, а метод getText находится внутри объекта test, поэтому его нужно вызывать через объект test.

Для того чтобы реализовать вызов метода getText внутри функции otherSome через this, можно использовать стрелочную функцию, которая сохранит контекст выполнения:

var test = {
getText: function(some) {
},
otherSome: function(someOther) {
(() => this.getText())(); // Работает
test.getText(); // Работает
}
}

Теперь вызов this.getText() внутри функции otherSome будет работать, потому что стрелочная функция сохраняет контекст выполнения.

20 Апр 2024 в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир