Во многих случаях я видел величие того, как jQuery изменяет ключевое слово this, чтобы дать объекту, который, как вы ожидаете, будет там на самом деле. Отлично ....
Однако, как вы справляетесь с ситуацией, когда у вас есть пользовательские объекты, которые имеют пользовательские методы, которые ссылаются на это ключевое слово, но называются через jQuery.
Например:
var myCustomObject = {
myCustomValue: 1,
myCustomMethod: function () {
switch (this.myCustomValue) {
case ....
}
}
};
Если вызывается с помощью обратного вызова jQuery, «this» теперь является «контекстом» jQuery и, очевидно, возвращает неопределенное значение для myCustomValue.
Я заметил, что могу напрямую ссылаться на экземпляр, например
switch (myCustomObject.myCustomValue) {}
Но это кажется досадно многословным, и мне интересно, может ли это быть вызвано неожиданными побочными эффектами ...
Что является наилучшей практикой для таких сценариев?