7 способов создания объектов в JavaScript:
<сильный>1. Конструктор объектов
Самый простой способ создать объект — использовать конструктор объектов: view plainprint?
var person = new Object();
person.name = "Diego";
person.getName = function(){
return this.name;
};
<сильный>2. Буквенное обозначение
посмотреть расшифровку?
var person = {
person.name : "Diego",
person.getName : function(){
return this.name;
}
}
<сильный>3. Заводская функция
Функция Factory позволяет инкапсулировать и повторно использовать логику для создания подобных объектов. Для этого он использует любую из предыдущих конструкций. Либо: просмотреть открытый текст?
var newPerson=function(name){
var result = new Object();
result.name = name;
result.getName = function(){
return this.name;
};
return result;
};
var personOne = newPerson("Diego");
var personTwo = newPerson("Gangelo");
console.log(personOne.getName()); // prints Diego
console.log(personTwo.getName()); // prints Gangelo
Or:
view plainprint?
var newPerson=function(name){
return {
person.name : name,
person.getName : function(){
return this.name;
};
};
var personOne = newPerson("Diego");
var personTwo = newPerson("Gangelo");
console.log(personOne.getName()); // prints Diego
console.log(personTwo.getName()); // prints Gangelo
<сильный>4. Конструктор функций
В Javascript можно вызвать любую функцию с оператором new перед ней. Учитывая функцию F, для новой F(): создается новый пустой объект X. X устанавливается в качестве контекста для F, что означает, что во всем F это указывает на X. X возвращается как результат открытого отпечатка представления F?
function Person(name){
this.name = name;
this.getName = function(){
return this.name;
};
};
var personOne = new Person("Diego");
console.log(personOne.getName()); // prints Diego
console.log(personOne instanceOf Person); // prints true
console.log(personOne.constructor === Person); // prints true
console.log(personOne instanceOf Object); // prints true
<сильный>5. Прототип
Функции очень специфичны в Javascript. Это объекты, они могут создавать другие объекты и автоматически получают поле с именем прототип. Прототип — это простой объект с одним полем, называемым конструктором, указывающим на саму функцию. Что делает его особенным, так это то, что каждый объект, созданный с помощью функции, наследует прототип функции. посмотреть расшифровку?
function Person(){};
Person.prototype.name = "Diego";
var personOne = new Person();
var personTwo = new Person();
console.log(personOne.constructor == Person); // prints true
console.log(personOne.name); // prints Diego
console.log(personTwo.constructor == Person); // prints true
console.log(personTwo.name); // prints Diego
<сильный>6. Сочетание функции/прототипа
Комбинация функция/прототип, как вы понимаете, использует преимущества обоих подходов :)
function Person(name){
this.name = name;
};
Person.prototype.getName = function(){
return this.name;
};
var personOne = new Person("Diego");
var personTwo = new Person("Filippo");
console.log(personOne.getName()); // prints Diego
console.log(personTwo.getName()); // prints Filippo
console.log(personOne.getName === personTwo.getName) //prints true
<сильный>7. Синглтон
Иногда вам может понадобиться убедиться, что существует только один экземпляр определенного класса. Получить Singleton в Javascript так же просто, как определить и вызвать конструктор одновременно: просмотреть обычный отпечаток?
var singleton = new function(){
this.name = "ApplicationName";
};
person
Community
schedule
10.12.2014
new
. - person Halcyon   schedule 19.04.2013new
нет, это будет класс. - person macool   schedule 19.04.2013new
без прототипов. - person Halcyon   schedule 19.04.2013new
позаботится о вызове функции. - person Ted Hopp   schedule 19.04.2013new
не нужен () только если конструктор не принимает никаких параметров, однако в вашем случае вы правы - person Kamyar Nazeri   schedule 19.04.2013obj
с подходом 3? - person teewuane   schedule 30.04.2014