(I) Метод динамического выбора и атрибут
В реальной работе мы часто сталкиваемся с этой ситуацией: вызовуте один из двух методов [1] в соответствии с определенным условием или читать и записывать операции на одном из двух атрибутов [2]. Следующий код показывает это:
Кода -копия выглядит следующим образом:
if (условие) {
myobj.method1 (omearg);
} еще {
myobj.method2 (omearg);
}
JavaScript предоставляет простой синтаксис, который использует квадратные операторы кронштейнов ([]) для динамического выбора методов и свойств. Как показано в следующем коде, JavaScript имеет два эквивалентного синтаксиса доступа членов (эта функция распространена на динамических языках):
obj [ExpressResultingInmemberName] == obj.memberName
Если вы использовали Integer подписки для доступа к элементу в массиве, вы уже начали использовать квадратные операторы кронштейнов для выбора динамического члена. Это связано с тем, что сам объект массива содержит атрибуты (и атрибуты длины), названные в честь подписчика номера. Тем не менее, JavaScript не позволяет вам напрямую получать доступ к этим свойствам, используя точечные операторы (.), Таким образом, Myarray.0 является синтаксически незаконным (это позор, это крутой синтаксис).
Почему операторы квадратных кронштейнов более мощные, чем нотация оператора DOT? Это связано с тем, что вы можете получить доступ к члену объекта, используя любое содержание, представляющее имя участника в квадратных скобках. К ним относятся литералы, переменные, которые содержат имена членов, комбинации имен (в основном сплайсинг строки) и быстрый выбор, если/затем выбор с использованием тройных операторов (условие? Valueiftrue: valueiffalse). Весь этот контент будет обработана в строку, а затем JavaScript будет использовать эту строку, чтобы найти соответствующие участники.
Поскольку функция в JavaScript сама по себе является объектом, на ней можно ссылаться, как и другие значения. Если результат выражения является функцией, вы можете вызвать ее непосредственно с оператором кронштейна, точно так же, как вы называете функцию напрямую с именем функции.
Следует отметить, что если вы сильно используете этот трюк на параметрах, которые вы передаете методу, запутанные скобки могут затруднить чтение кода, и в настоящее время разумно использовать обычную структуру IF/ELE.
(Ii) Свойства и методы объекта JavaScript
JavaScript использует оператор для итерации по свойствам и методам объекта. Для того, чтобы in antage ware, через объект JavaScript.
Грамматика:
Кода -копия выглядит следующим образом:
for (valueName in objectName) {
// код
}
Где ValueName - это имя переменной, которое содержит имя свойства или метод.