JSLint - терпеть неэффективную подписку? - PullRequest
4 голосов
/ 15 марта 2010

Я читаю Документацию по опциям JSlint , чтобы понять каждую из доступных опций, и наткнулся на одну, которую я не совсем понимаю, и не могу найти никакой полезной информации о ней в другом месте.

sub - терпеть неэффективную подписку

true , если для более выраженных выражений можно использовать нижнюю запись в точечной записи.

Может ли кто-нибудь пролить больше света на то, что это значит?

Спасибо

Ответы [ 2 ]

7 голосов
/ 15 марта 2010

Доступ к членам объекта JavaScript можно получить с помощью точечной или подстрочной (квадратной скобки) записи:

o.foo
o['foo']

... это одно и то же. Обозначение в квадратных скобках необходимо для доступа к элементам, имена которых нельзя использовать в точечных обозначениях:

o['hello!']

или для доступа к элементам из динамического имени:

var name= issomething? 'foo' : 'bar';
o[name]

Но для простого o['foo'] вам это не нужно. Обычно форму o.foo легче читать, поэтому рекомендуется использовать ее. Некоторые программисты из других языков могут предпочитать использовать квадратные скобки для объектов, использующих «как отображение», а не «как объект», но это все равно для JS.

(JSlint утверждает, что квадратная скобка также «менее эффективна», но если это так, то разница незначительна и не стоит беспокоиться.)

2 голосов
/ 15 марта 2010

См. здесь . Похоже, что индексная запись делает:

document.forms['myformname'];

вместо

document.forms.myformname;
...