/ / Доступ до обох змінних 'this' у TypeScript - jquery, typecript, this

Доступ до обох "цього" змінних в TypeScript - jquery, мануальний текст, це

У TypeScript, якщо ви визначаєте функцію за допомогою () => {...}, the this змінна буде посилатися на екземпляр навколишнього класу. Але якщо використовувати function () {...}, the this змінна матиме своє старе тлумачення JavaScript.

Чи є спосіб отримати доступ до обох цих this змінні у функції TypeScript?

Мені періодично потрібно це під час використання JQuery в TypeScript:

class X {
private v : string;
constructor() {
$(".xyz").on("change", function() {
this.v = $(this).prop("value"); // Two different this"s
})
}
}

У центральному рядку в коді перший this повинен посилатися на об'єкт класу X, тоді як другий this має посилатися на об'єкт JQuery, який ініціював подію.

Відповіді:

5 за відповідь № 1

В change обробник подій this буде посилатися на .xyz елемент, який підняв лише подію. Якщо ви хочете посилання на вміст X клас, тоді вам потрібно зберегти змінну, що містить цю посилання, наприклад:

class X {
private v : string;
constructor() {
var _x = this;
$(".xyz").on("change", function() {
_x.v = $(this).prop("value");
})
}
}