如果需要定义并声称一个对象该如何做?通常的做法是:
var _kernel=function(){
var idnumber=0
this.getid=function(){idnumber++;return "gvsun_client_" + idnumber;}
}
但这时你无法访问getid方法,所以需要
var kernel=new _kernel()
这样写确实很麻烦,而且需要两个变量。通过实验,我找到了两种不同的写法:
第一种:
var kernel=new function(){
var idnumber=0
this.getid=function(){idnumber++;return "gvsun_client_" + idnumber;}
}
第二种:
var sys_general={
"idnumber":0,
"objidnumber":0
}
var kernel={
"getid":function(){sys_general.idnumber++;return "gvsun_client_" + sys_general.idnumber;}
}
以上这个简单的代码,只实现了一种功能,就是分配id号。两种方法都需要访问kernel.getid(),不过第二种方法需要将公用变量包含在一个对象里。
这个方法虽然不错,但很鸡肋。因为没有控制对这些内容的访问。这会导致错乱。我自然而然的想到了这个写法的变种:
var kernel={
"sys_general":{"idnumber":0,"objidnumber":0},
"getid":function(){this.sys_general.idnumber++;return "gvsun_client_" + this.sys_general.idnumber;}
}
ok,数据被隐藏,只能通过方法来访问了。那种方法更好一些?我不明白,有谁能够教我?