关于javascript定义并初始化对象的几种方法

如果需要定义并声称一个对象该如何做?通常的做法是:

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,数据被隐藏,只能通过方法来访问了。那种方法更好一些?我不明白,有谁能够教我?


转载于:https://my.oschina.net/u/2296951/blog/362813

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值