Давайте возьмем пример, чтобы понять рождение конструкторов в Javascript. Предположим, вас попросили создать объект сотрудника, и он должен иметь 4 свойства: имя, фамилия, пол и назначение. Что ж! ты сказал нет проблем.
var employee1={};
employee1.firstName="Anoop";
employee1.lastName="Rai";
employee1.gender="M";
employee1.designation="Software Engineer";
Выше приведен самый простой способ: сначала вы создали пустой объект, а затем связали с объектом все 4 свойства (конечно, вы могли бы также создать то же самое с помощью встроенного метода). Что делать, если вас снова попросят создать другой объект сотрудника с теми же свойствами.
var employee2={};
employee1.firstName="Ram";
employee1.lastName="Kumar";
employee1.gender="M";
employee1.designation="Associate Software Engineer";
Кажется, это вообще не проблема. Теперь, что если вас спросят, что всего 100 сотрудников, и вы только что создали 2 из них, обычно вам нужно создать еще 98 объектов сотрудников. Теперь вы не будете создавать объекты, как показано выше, так как это кажется утомительным. Попался! давайте создадим фабричный метод, который будет вызываться любое количество раз и будет создавать объекты, а затем возвращать их нам. Ага! написать один раз и будет использоваться много раз.
function createEmployeeObject(firstName, lastName, gender, designation){
var employee={};
employee.firstName=firstName;
employee.lastName=lastName;
employee.gender=gender;
employee.designation=designation;
return employee;
}
var employee3=createEmployeeObject("Harry", "Dsouza", "M", "Project Manager");
Очень удобный способ, и без дубликатов кодов. Просто вызовите функцию createEmployeeObject со своими аргументами, и взамен вы получите свой объект. Что, если у нас есть несколько типов объектов, скажем, отдела. Тогда также у нас будет функция, которая создаст объект отдела и вернет его.
Итак, что общего в такого рода функциях. Это:-
создание пустого объекта
вар myObj={};
возврат объекта после его заполнения
вернуть мойОбъект;
Создание пустого объекта и возврат объекта являются общими для всех функций, создающих объекты. Javascript создал ярлык, который позволяет вам не писать эти строки, когда вы используете функцию, создающую объекты. Так что эти 2 строчки можно пропустить. Способ сделать это с помощью конструкторов.
Использование функций для создания объектов довольно распространено в Javascript, поэтому Javascript предоставляет ярлык, который позволяет вам писать функции для создания объектов. Эти специальные функции называются функциями конструктора. Конструкторы — это функции, которые позволяют вам заполнить объект, который вам нужно создать.
function createEmployeeObject(firstName, lastName, gender, designation){
this.firstName=firstName;
this.lastName=lastName;
this.gender=gender;
this.designation=designation;
}
var employee4=new createEmployeeObject("Alan", "Marks", "F", "Business Analyst");
Вы должны знать об этом ключевом слове. Оно указывает на текущий объект. Помните, что в функциях конструктора Javascript создает для нас пустой объект, так что это фактически указывает только на этот объект. Функции Javscript Construtor автоматически возвращают объект после его заполнения. Теперь, как сообщить Javascript, что функция вызывается в режиме конструктора, это новое ключевое слово, которое указывает Javascript рассматривать функцию как функцию конструктора. Каждый раз, когда вам нужен объект, используйте новое ключевое слово, а затем вызывайте функцию, а затем эта функция подготавливает для нас объект и возвращает его.
Несмотря на то, что Javascript не основан на классах, вы должны позаботиться об имени функции конструктора. нехорошо использовать верблюжий чехол, используйте обычный.
function Employee(firstName, lastName, gender, designation){
this.firstName=firstName;
this.lastName=lastName;
this.gender=gender;
this.designation=designation;
}
var employee5=new Employee("Mark", "Watson", "M", "DBA");
http://jkoder.com/javascript-constructors-why-it-should-be-used-объектно-ориентированное-программирование-в-javascript/
person
Anoop Rai
schedule
01.09.2016