Недавно я разместил часть своего кода здесь и получил комментарий (не связанный с исходным вопросом), что с использованием this для всех функций-членов и атрибутов класса "не просто вопрос стиля персонального кодирования, это плохая практика" . К сожалению, человек отказался уточнить и сказал, чтобы я сам это просмотрел.
Я использовал Google кучу (но это действительно трудно найти что-либо с "this" в качестве ключевого слова), и огляделся здесь, но я нашел несколько. , когда this должен использоваться.
Я знаю ситуации, когда использование this неизбежно (параметр/переменная с тем же именем, наследование шаблона и т.д.), но со временем я начал использовать this везде, где это возможно, потому что я могу найти свой путь вокруг моего кода и быстрее. Мои причины включают в себя:
- быстро проверить, должна ли функция
fбыть функцией-членом вообще: если в коде нетthis, ее можно удалить из класса - быстрая проверка, если
fможет быть функциейconst: если нетthisс левой стороны, скорее всего, можно сделатьconst(не всегда, но я считаю это полезным при скимминге) - быстрая проверка, если объект "меняет" себя "предопределенным" способом в
fили если он является составной функцией-членом (метод-член, вызываемый сthisпо сравнению с "внешним" алгоритмом, работающим на объект без этого) - отладки; то есть, если атрибуту элемента присваивается неправильное значение в любой точке, я должен сконцентрироваться на строках, содержащих
this, чтобы найти проблему, поскольку другие строки не изменяют объект
Честно говоря, комментарий о том, что это "плохая практика", немного меня задрожал. Но один комментарий сам по себе не имеет большого значения, поэтому я бы хотел спросить , что-то по-своему плохое при использовании this последовательно для всех функций-членов и атрибутов? Если да, то что основные недостатки, которые ставят его (возможно, неуклюжий, непопулярный или не широко распространенный) персональный стиль и помещают его в категорию "плохая практика"?