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