В JS есть несколько режимов, которые могут создавать объекты, и управлять свойствами и методами, содержащимися в объекте.
Вообще говоря, первая буква имени конструктора является заглавным письмом, а первая буква неконструкционного имени-строчная буква. Конечно, единственная разница между конструктором и общей функцией - это разница в пути призывы. Следовательно, до тех пор, пока любая функция вызывается через новую, ее можно использовать в качестве конструктора. Если он не вызван через новый, это то же самое, что и общая функция.
Позвольте мне поговорить о моем понимании этих моделей:
Заводский режим: создайте общую функцию, создайте объект объекта в функции, добавьте атрибуты и методы в объект, назначьте его значение и, наконец, верните объект. Тип объекта не может быть распознан.
Режим конструктора: создайте конструктор, используйте его для назначения значений, и всякий раз, когда создается экземпляр, метод создается один раз, и каждый метод выполняет ту же команду, которая является избыточной. Этот недостаток может быть сделан, поместив метод в глобальную среду, но таким образом нет инкапсуляции. Тем не менее, это может быть решено через режим прототипа.
Паттерн прототипа: каждая функция имеет свойство прототипа, которое является указателем, указывающим на объект, который содержит свойства и методы, разделяемые всеми экземплярами, создаваемыми его функцией.
Взаимосвязь между объектами прототипа, конструкторами и экземплярами заключается в следующем:
Иллюстрация: 1: Конструктор и экземпляры, созданные конструктором, их атрибуты прототипа указывают на объект прототипа конструктора.
2: Прототип объекта конструктора имеет атрибут конструктора, который указывает на конструктор.
3: Все свойства и методы, содержащиеся в объекте прототипа конструктора, могут быть переданы всеми экземплярами, созданными конструктором.
После переписывания объекта прототипа, используя буквальный объект, конструктор указывает на конструктор объекта. Если необходимо указывать на другой конструктор, вам необходимо изменить значение атрибута конструктора объекта прототипа, например: Constructor: Person. Таким образом, даже если объект прототипа человека переписан, конструктор объекта прототипа все еще указывает на конструктор человека.
Сначала при создании экземпляра: если вы добавляете свойства или методы напрямую, экземпляр может быть доступен.
Если объект прототипа переписывается, прототип конструктора указывает на новый объект прототипа, в то время как прототип экземпляра, созданного ранее, все еще указывает на исходный объект прототипа, поэтому экземпляр не может получить доступ к новым свойствам или новым методам нового объекта прототипа.
Объект прототипа содержит общие свойства и методы, поэтому у каждого экземпляра есть эта информация, поэтому нет никакой разницы между экземплярами, и параметры не могут быть переданы, что мы не хотим. Каждый экземпляр имеет общую информацию и различную информацию, поэтому мы можем использовать комбинацию режима конструктора и режима прототипа.
Используйте комбинацию режима конструктора и режима прототипа:
Штат прототипа состояния: комбинируйте независимые конструкторы с их прототипом объектами, инициализируйте прототип в конструкторе и добавьте в него методы.
Если метод не существует, он добавляется в объект прототипа и выполняется только тогда, когда инициализируется прототип, и только один раз.
Режим паразитического конструктора: аналогично заводскому режиму, разница в том, что режим паразитического конструктора является конструктором, а экземпляры создаются через новый.
Стабильный шаблон конструктора: нет общественных свойств, и его методы не относятся к этому объекту. При создании экземпляра нет нового. Только доступ к свойствам (то есть входящие данные) осуществляется с помощью методов.
Вышеуказанное введение в несколько режимов объектов создания JavaScript - это весь контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.