|
- function Set(){
- // 函数中的私有变量
- var items = {};
- // 判断是否有某个属性,使用的是in方法(可以包括继承的属性),而不是使用的Object.hasOwnProperty()
- this.has = function(key){
- return key in items;
- };
- // 设置属性和值
- this.set = function(key, value){
- items[key] = value;
- };
- // 获取某个属性对应的值
- this.get = function(key){
- return this.has(key) ? items[key] : undefined;
- };
- // 删除某个属性,此时需要判断items中是否有这个属性,有就删除并返回true,没有返回false
- this.remove = function(key){
- if(this.has(key)){
- delete items[key];
- return true;
- }
- return false;
- };
- // 获取所有属性的值,返回的是一个数组
- this.values = function(){
- var values = [];
- for (const key in items) {
- // for in 循环会将items所继承的属性也遍历到,为了防止得到遍历的属性,加入如下判断进行过滤
- if (this.has(key)) {
- values.push(items[key])
- }
- }
- return values;
- };
- // 获取所有的属性及其值
- this.getItems = function(){
- return items;
- }
- }
- function test()
- {
- var dic = new Set()
- var arr
- dic.set('李四','LISI')
- if (dic.has('李四') == false)
- {
- dic.set('李四','LIsi')
- }
- dic.set('王五','wangwu');
- MsgBox(dic.get('李四'))
- }
复制代码
|
|