Что такое объекты expando в javascripts?
Поскольку, какая цель нам нужно это? Любой полный пример будет цениться
Я нашел 1 статью здесь JavaScript: рыжеволосый пасынок веб-разработки
Что ж, в javascript любой объект является расширяемым объектом. Это означает, как говорится в статье, что всякий раз, когда вы пытаетесь получить доступ к свойству 1 , оно будет создано автоматически.
var myObj = {}; // completely empty object
myObj.myProp = 'value';
В тот момент, когда вы присваиваете myProp
значение, свойство myProp
создается динамически, хотя раньше его не существовало. Во многих других языках, таких как C #, это обычно невозможно (на самом деле C # только что включил поддержку объектов expando, но это не относится к делу). Чтобы получить доступ к свойству в обычном классе в C #, вам необходимо указать в классе, что у него действительно есть это свойство.
1 Не совсем верно. См. Комментарий npup ниже для разъяснения.
Статья, написанная в 2007 году, в которой используется document.all (только как ) для доступа к элементам)? Это большой красный флаг.
Это просто приукрашивание «Вы можете добавлять свойства к объекту» с помощью модных словечек.
Нам нужно иметь возможность делать это, потому что в противном случае мы не смогли бы хранить данные, а это сделало бы JavaScript довольно бесполезным языком.
(Все является массивом? Нет, это не так. И он выполняет итерацию по объекту без оболочки hasOwnProperty. Это небезопасно. Просто держитесь подальше от статьи, это хуже, чем бесполезно)
{{ 1}}