В предыдущей статье объекты и прототипы в JavaScript (i) упомянули некоторые основные операции в создании объектов в JavaScript и будут продолжать обсуждать их дальше.
Одна заводская модель
Мы знаем, что для создания объекта мы можем использовать следующий код:
var user = new Object (); // Создать объект с использованием нового оператора user.name = 'clysed на озере Треугольника'; // Добавить атрибуты в объект user.age = 22; user.address = 'hubei wuhan'; alert (user.name + "" + user.age); // Возвращение «прочитано на озере Треуголь
Создание объектов таким образом просто и интуитивно понятно, и это также самый основной метод создания объектов в JavaScript. Но есть такая проблема, если нам нужно создать несколько объектов, то мне нужно написать много дублированного кода. Например, если мы хотим создать другой объект user11, мы должны снова переписать приведенный выше код, что является неуместным в реальном процессе разработки. Таким образом, если слишком много объектов, количество кода значительно увеличится.
Чтобы решить такую проблему, мы можем использовать метод, называемый заводским шаблоном, который состоит в том, чтобы решить проблему создания объектов, производящих большое количество дублированного кода.
Функция создать (имя, возраст) {var obj = new Object (); obj.name = name; obj.age = возраст; obj.run = function () {return this.name + '' + this.age; }; вернуть obj;} var obj1 = create ('zxc', 10); // первый экземпляр var obj2 = create ('cxz', 20); // Второй экземпляр оповещения (obj1.run ()); оповещение (obj1.run ());Из приведенного выше кода мы видим, что заводской шаблон решает проблему крупномасштабного дублирования кода во время экземпляра, но возникает другая проблема, то есть определение проблемы, мы не можем выяснить, какой они объект. например
оповещение (TypeOf OBJ1); // objectAlert (obj1 exanceof object); //истинный
Приведенный выше код указывает, что Box1 является объектом объекта, но мы не можем знать, какой объект был создан.
Два конструктора (метод строительства)
Чтобы решить вышеуказанную проблему, мы можем использовать конструкторы для создания объектов. Единственная разница между конструктором и нормальной функцией заключается в том, что метод вызова отличается. Однако конструктор также является функцией.
Пользователь функции (имя, возраст) {// режим конструктора this.name = name; this.age = возраст; this.run = function () {return this.name + '' + this.age; };}Просто используйте новый оператор при создании объекта:
var user1 = новый пользователь ('zxc', 25); var user2 = новый пользователь ('cxz', 22);Теперь мы можем обнаружить, принадлежит ли пользователь1 или пользователь2.
Alert (user1 EncementOf пользователя); // true
Можно видеть, что использование метода конструктора решает проблему повторного экземпляра, а также решает проблему распознавания объектов.
Процесс выполнения при использовании конструктора выглядит следующим образом:
1. При выполнении нового конструктора () фон выполняет новый объект ();
2. Применить конструктор к новому объекту.
3. Выполнить код внутри конструктора;
4. Фон непосредственно возвращает новый объект.
Затем давайте посмотрим на проблемы функции внутри конструктора. Если мы выполним следующее оператор:
Alert (user1.run == user2.run); // Результат возвращает false
Результат возвращает false, что означает, что метод на самом деле является справочным адресом. Если мы создаем несколько объектов многократно, методы в каждом объекте откроют новое пространство в памяти, что будет тратить больше места. Чтобы решить эту проблему, нам нужно использовать обмен свойствами или методами экземпляра. Мы продолжим обсуждать решение этой проблемы в следующей статье.
Выше приведено объекты и прототипы в JavaScript, представленные вам редактором (II). Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!