JavaScript でオブジェクトを作成する 7 つの方法:
1. オブジェクトコンストラクター
オブジェクトを作成する最も簡単な方法は、Object コンストラクターを使用することです。
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
または:
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 が与えられると、new 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. プロトタイプ
Functions are very special in Javascript. They are objects, they can create other objects and they automatically get a field called prototype.
A prototype is a plain object with a single field, called constructor, pointing to the function itself.
What makes it special is that every object created through a function inherits the function's prototype.
view plainprint?
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/Prototype combination
The function/prototype combination, as you would imagine, takes advantage of both approaches :)
view plainprint?
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
Sometimes, you may want to make sure that only a single instance of a certain class exists.
To get a Singleton in Javascript is as simple as defining and invoking the constructor at the same time:
view plainprint?
var singleton = new function(){
this.name = "ApplicationName";
};