Во время игры с custom elements Я замечаю, что функция attachedCallback
имеет заполненную attributes
коллекцию. А именно, это NamedNodeMap
, содержащий все переданные атрибуты элементу.Все параметры не определены, но атрибуты имеют значения
Я также замечаю, что указание параметров в функции attachedCallback
всегда вызывает undefined
.
Как можно установить коллекцию attributes
внутри функции, но имеют ли какие-либо указанные параметры undefined
? Это просто из-за реализации поставщика браузера или есть способ сделать это в JavaScript, о котором я не знаю?
Пример:
var proto = Object.create(HTMLElement.prototype);
proto.attachedCallback = function (elem) {
console.log(elem); // undefined
console.log(this.attributes); // NamedNodeMap
};
Если вы знакомы с тем, как это работает в JavaScript, это не удивительно. http://jsfiddle.net/Lbrujmwc/1/ – JLRishe
Да, вы правы. По какой-то причине я не думал о атрибутах как о свойствах прототипа функции. Кажется очевидным сейчас. –