Доброго времени суток.
Читаю книгу "Джон Рейсиг JavaScript Профессиональные приёмы программирования".
Не понял пример из книги. А именно строку с объектом
name. Нужна ваша помощь.
Пример:
function attr(elem, name, value) {
// Гарантирование допустимости предоставленного имени
if ( !name || name.constructor != String ) return '';
// Определение, не относится ли это имя к тем самым«роковым»
// именам
name = { 'for': 'htmlFor', 'class': 'className' }[name] || name; /* Не понял вот эту строку. Что здесь происходит? */
// Если пользователь устанавливает значение, то также
if ( typeof value != 'undefined' ) {
// сначала установить быстрый способ
elem[name] = value;
// По возможности воспользоватьсяsetAttribute
if ( elem.setAttribute )
elem.setAttribute(name,value);
}
// Вернуть значение атрибута
return elem[name] || elem.getAttribute(name) || '';
}