関数を構築するオブジェクトvs一般オブジェクト
4294 ワード
コンストラクション関数によって作成されたオブジェクト
function Old(name,age){
this.name = name;
this.age = age;
this.name_ip = function(){
console.log(name);
console.log(this);
}
}
let name1 = new Old('misaka',19)
name1.name_ip();
結果 misaka Old {name: "misaka", age: 19, name_ip: ƒ}
nameだけを出力して正常に出力できるのは、thisです。メソッドはname ipとして定義されており、this(name 1)のnameが検索されるため、thisは単独で使用されます。名前を印刷する必要はありません。
オブジェクトのみ
let name2 = {
name : 'misaka',
age : 19,
name_ip : function(){
console.log(this.name);
console.log(this);
}
}
name2.name_ip()
結果 misaka {name: "misaka", age: 19, name_ip: ƒ}
this.nameとして出力するのは、nameのみを出力するとnameが見つからないため、指定した名前のthis(name 2)を指摘してnameを検索する必要があるからです。nameを印刷させるべきです。
整理する
複数のフレームワーク(オブジェクトなど)を作成する場合は、関数を構築する必要があります。直接作成したオブジェクトとして使用することを推奨します(1つのオブジェクトのみを作成します)。
Reference
この問題について(関数を構築するオブジェクトvs一般オブジェクト), 我々は、より多くの情報をここで見つけました https://velog.io/@khw970421/생성자-함수를-통한-객체-vs-그냥-객체テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol