質問:以下の2つの例の結果オブジェクトobj
には違いがありますか?コンストラクタとクロージャを使用してオブジェクトを作成する
閉鎖例:
var myClosure = function(paramId) {
return {
Id : paramId,
getId : function() {console.log(this.Id)},
setId : function(sId) {this.Id = sId}
};
}
var obj = myClosure(2);
obj.getId();//outputs 2
obj.setId(5);
obj.getId();//outputs 5
コンストラクタの例:
var MyConstr = function(Id)
{
this.Id = Id;
this.getId = function() { console.log(this.Id)};
this.setId = function(sId) {this.Id = sId};
}
var obj = new MyConstr(2);
obj.getId();//outputs 2
obj.setId(5);
obj.getId();//outputs 5
私はそれがその本来の目的であるから、オブジェクトを作成するコンストラクタを使用することがベストプラクティスであることを理解し、将来のコードリーダーの混乱を招くことになります。私の質問の目的は好奇心からです。最終結果に何らかの違いがありますか?オブジェクト、またはメモリの使用量、または何か他のものと一緒にいてください。