這是用默認屬性(即使這裏有一些爲null)創建JavaScript類的正確方法,但也有選項添加了一個創建參數,該參數可以包含特定值在對象格式/ json中列出的一些屬性?新Javascript對象的可選初始化屬性
如果我正在創建許多Person對象,那麼我也應該將這些放入Person的原型以節省內存嗎?
這是爲我工作,但我不知道這是否是一個很好的方法來做到這一點?使用這個類創建的
// PERSON Class -----------------------------------------------
QM.Person=function(data)
{
/* Closure for this */
var my = this;
this.PersonID=null;
this.Name_Last="";
this.Name_First="";
this.Date_Birth=null;
this.Biography="";
this.loadData=function(obj) {
for (var i in obj) {
if (my.hasOwnProperty(i)) {
my[i] = obj[i];
}
}
}
this.loadData(data);
}
例如:
jondoe = new Person();
bob = new Person({Name_First:"Bob",Name_Last:"Bar"});
jondoe.Name_First /* "" */
bob.Name_First /* "Bob" */
我已經與上面的答案一樣,儘管在'statement'語句中重寫了'/ *評估初始化數據*/ (var key在this.defaults) { 這個[ key] =(data!== undefined && data [key]!== undefined)?數據[key]:this.defaults [key]; }' – johowie 2012-07-29 22:11:53
應該是:'for(var key in keys){this [key] =(data!== undefined && data [key]!== undefined)?數據[key]:keys [key]; }'where keys = this.keys' – johowie 2012-07-29 22:21:26
這在功能上沒有什麼不同,因爲你應該在那裏有hasOwnProperty檢查。 – 2012-07-29 22:24:20