Оглавление:
- Построение объектов с функциями-конструкторами
- Изменение типа объекта
- Создание объектов с объектом. create
Видео: Мастер-класс Single Page Application на чистом JS 2025
Когда вы создаете объекты с помощью JavaScript, вы не просто ограничены созданием определенных объектов, таких как гитара, ваш автомобиль, ваша кошка или ваш сэндвич, Реальная красота объектов заключается в том, что вы можете использовать их для создания типов объектов, из которых могут быть созданы другие объекты.
Здесь создается новый объект объекта типа Object. Этот объект нового человека содержит все свойства и методы по умолчанию для типа объекта, но с новым именем. Затем вы можете добавить свои собственные свойства и методы к объекту person, чтобы он конкретно описал то, что вы подразумеваете под своим именем.
var person = new Object (); человек. глаза = 2; человек. уши = 2; человек. оружие = 2; человек. hands = 2; человек. ноги = 2; человек. ноги = 2; человек. species = "Homo sapien";
Итак, теперь вы задали некоторые специфические свойства объекта person. Представьте, что вы хотите создать новый объект, который является конкретным человеком, например Вилли Нельсоном. Вы можете просто создать новый объект с именем willieNelson и дать ему все те же свойства, что и объект person, а также свойства, которые делают Вилли Нельсона уникальным.
var willieNelson = new Object (); Вилли Нельсон. глаза = 2; Вилли Нельсон. уши = 2; Вилли Нельсон. оружие = 2; Вилли Нельсон. hands = 2; Вилли Нельсон. ноги = 2; Вилли Нельсон. ноги = 2; Вилли Нельсон. species = "Homo sapien"; Вилли Нельсон. занятие = «музыкант»; Вилли Нельсон. родной город = "Остин"; Вилли Нельсон. hair = "Long"; Вилли Нельсон. жанр = "страна";
Однако этот метод определения объекта willieNelson является расточительным. Это требует от вас большой работы, и нет никаких указаний на то, что Вилли Нельсон - человек. Он просто имеет все те же свойства, что и человек.
Решение состоит в том, чтобы создать новый тип объекта, называемый Person, а затем сделать объект willieNelson имеющим тип Person.
Обратите внимание, что имя типа объекта всегда заглавное. Это не требование, но это почти универсальное соглашение. Например, вы можете сказать
var person = new Object ();
или
var willieNelson = new Person ();
Построение объектов с функциями-конструкторами
Чтобы создать новый тип объекта, вы определяете новую конструкторскую функцию. Конструкторские функции формируются точно так же, как любая функция в JavaScript, но они используют это ключевое слово для назначения свойств новому объекту. Новый объект затем наследует свойства типа объекта.
Вот функция-конструктор для нашего типа объекта Person:
function Person () {this.глаза = 2; это. уши = 2; это. оружие = 2; это. hands = 2; это. ноги = 2; это. ноги = 2; это. species = "Homo sapien";}
Чтобы создать новый объект типа Person сейчас, вам нужно всего лишь назначить функцию новой переменной. Например:
var willieNelson = new Person ()
Объект willieNelson наследует свойства типа объекта Person. Несмотря на то что вы специально не создали никаких свойств для объекта willieNelson, он содержит все свойства Person.
Чтобы проверить это, запустите этот код в веб-браузере.
Демографическая функция Inheritance Person () {this. глаза = 2; это. уши = 2; это. оружие = 2; это. hands = 2; это. ноги = 2; это. ноги = 2; это. species = "Homo sapien";} var willieNelson = new Person (); alert («У Вилли Нельсона есть« + willieNelson. ноги + «ноги!»);
Вот результат запуска этого кода в браузере.
Изменение типа объекта
Предположим, что у вас есть тип объекта Person, который служит прототипом для нескольких объектов. В какой-то момент вы понимаете, что человек, как и все объекты, которые наследуют его, должен обладать еще несколькими свойствами.
Чтобы изменить объект-прототип, используйте свойство prototype, которое каждый объект наследует от Object.
Функция Person () {this. глаза = 2; это. уши = 2; это. оружие = 2; это. hands = 2; это. ноги = 2; это. ноги = 2; это. species = "Homo sapien";} var willieNelson = new Person (); var johnnyCash = new Person (); var patsyCline = new Person (); // Человеку нужны дополнительные свойства! Человек. опытный образец. колени = 2; Человек. опытный образец. toes = 10; Человек. опытный образец. elbows = 2; // Проверяем значения существующих объектов для нового документа свойств. написать (patsyCline. toes); // выводит 10
Создание объектов с объектом. create
Еще один способ создания объектов из других объектов - использовать Object. создать метод. Этот метод имеет то преимущество, что вам не требуется писать функцию-конструктор. Он просто копирует свойства указанного объекта в новый объект. Когда объект наследуется от другого объекта, объект, который он наследует, называется прототипом.
В этом примере показано, как Object. create можно использовать для создания объекта willieNelson из прототипа.
// создаем общий персонаж var Person = {eyes: 2, arms: 2, feet: 2} // создаем объект willieNelson на основе Person var willieNelson = Object. создание (Person); // проверять унаследованный документ свойства. написать (willieNelson. feet); // выходы 2
