JavaScript expando объекты

Что такое объекты expando в javascripts?

Поскольку, какая цель нам нужно это? Любой полный пример будет цениться

Я нашел 1 статью здесь JavaScript: рыжеволосый пасынок веб-разработки

49
задан Luke Girvin 13 December 2016 в 05:57
поделиться

2 ответа

Что ж, в javascript любой объект является расширяемым объектом. Это означает, как говорится в статье, что всякий раз, когда вы пытаетесь получить доступ к свойству 1 , оно будет создано автоматически.

var myObj = {}; // completely empty object
myObj.myProp = 'value';

В тот момент, когда вы присваиваете myProp значение, свойство myProp создается динамически, хотя раньше его не существовало. Во многих других языках, таких как C #, это обычно невозможно (на самом деле C # только что включил поддержку объектов expando, но это не относится к делу). Чтобы получить доступ к свойству в обычном классе в C #, вам необходимо указать в классе, что у него действительно есть это свойство.

1 Не совсем верно. См. Комментарий npup ниже для разъяснения.

41
ответ дан 7 November 2019 в 11:53
поделиться

Статья, написанная в 2007 году, в которой используется document.all (только как ) для доступа к элементам)? Это большой красный флаг.

Это просто приукрашивание «Вы можете добавлять свойства к объекту» с помощью модных словечек.

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

(Все является массивом? Нет, это не так. И он выполняет итерацию по объекту без оболочки hasOwnProperty. Это небезопасно. Просто держитесь подальше от статьи, это хуже, чем бесполезно)

{{ 1}}
4
ответ дан 7 November 2019 в 11:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: