Использует “основную” плохую практику даже при том, что это могло бы быть хорошо для удобочитаемости?

  1. Ознакомьтесь с хотя бы одной библиотекой Javascript (Jquery, Prototype и т. Д.).

  2. Узнайте, как использовать средства отладки основных браузеров (MSIE 7-8, Firefox, Chrome, Safari)

  3. Читайте об индустрии: сайт Дугласа Крокфорда это сокровищница, в то время как Ajaxian.com - хороший блог, чтобы быть в курсе новых, интересных и необычных идей для Javascript. Есть ряд других ресурсов, но это те, которые помогли мне больше всего.

12
задан David Clarke 15 February 2012 в 08:58
поделиться

5 ответов

The only time you should use base.MethodCall(); is when you have an overridden method of the same name in the child class, but you actually want to call the method in the parent.

For all other cases, just use MethodCall();.

Keywords like this and base do not make the code more readable and should be avoided for all cases unless they are necessary--such as in the case I described above.

22
ответ дан 2 December 2019 в 03:06
поделиться
​​

Я не совсем уверен, что использование , это - плохая практика или нет. base , однако - это не вопрос хорошей или плохой практики, а вопрос семантики . Принимая во внимание, что this является полиморфным, это означает, что даже если метод, использующий его, принадлежит базовому классу, он будет использовать метод overriden, base - нет. base всегда будет ссылаться на метод, определенный в базовом классе метода, вызывающего его, следовательно, он не полиморфен . Это огромная смысловая разница. Затем следует использовать базу . Если вы хотите этот метод , используйте base . Если вы хотите, чтобы вызов оставался полиморфным, не используйте base .

17
ответ дан 2 December 2019 в 03:06
поделиться

Еще один важный момент, который следует принять во внимание, заключается в том, что, хотя вы в настоящее время не переопределили этот метод, это не означает, что вы никогда не будет в будущем, и предварительно снабдив все ваши звонки базой. ты выиграл' t получить новую функциональность без выполнения поиска и замены для всех ваших вызовов.

Предварительно задавая вызовы этим. не будет делать ничего, кроме уменьшения / увеличения читабельности (игнорируя ситуацию, когда две переменные в области видимости имеют одно и то же имя) base. префикс изменит функциональность кода, который вы пишете, во многих распространенных сценариях. Так что я бы никогда не добавил базу. , если это не требуется.

6
ответ дан 2 December 2019 в 03:06
поделиться

It's really a matter of personal preference. If you like seeing "base." at the beginning of your members, you can easily turn off the rule (Go to Options>Inspection Severity>Code Redundancies>Redundant 'base.' qualifier). Don't let non-behavioral static code analysis rules affect your preferred coding style.

EDIT

One thing to consider is that the static code analysis in FXCop and R# are there to provide rules for all possible needs. To actually adhere to all of the rules simultaneously is a little onerous. You should define your preferred coding style (if you're working in a team, do it collectively), and stick with it. Modify your rules to match your coding standards, not vice versa.

3
ответ дан 2 December 2019 в 03:06
поделиться

I think generally you should use base only when overriding previous functionality.

Some languages (C# does not) also provide this functionality by calling the function by it's base class name explicitly like this: Foo.common() (called from somewhere in Bar, of course).

This would allow you to skip upwards in the chain, or pick from multiple implementations -- in the case of multiple-inheritance.

Regardless, I feel base should be used only when needed to explicitly call your parent's functionality because you are or have overridden that functionality in this class.

4
ответ дан 2 December 2019 в 03:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: