我正在创建一个Javascript框架,这是我的问题:我有一个对象和一个数组。每次调用对象时我都需要清除数组。
var obj =
{
ary : [],
getById :function(id){ this.ary[ary.length]= document.getElementById(id); return obj; },
getByNames :function(names){ //loop over the names parameter and get element by names and then add these elements to the array; return obj; },
show :function(){// in here i loop over the array and show elements}
}
我需要知道的是每次回忆obj对象时如何清除该数组
//this works perfectly
obj.get('id').show();
//but when i recall it again like this in debugger mode i see the array have 2 elements not 1
obj.get('another id').show();
我想要的就是每次调用obj来清除数组时都这样做。
我需要提一下,我会在这里有一个链,我的意思就是那个
obj.getById( '')getByNames。( '');
所以我需要每个链的数组然后在下一个对象调用中清除它
问候
答案 0 :(得分:1)
如果通过“召回obj对象”表示return obj;
,则只需找到return obj;
替换this.arr=[]; return obj;
,以便每次返回obj
时清除数组。
编辑:
好的,所以你只想在开始新链时清除数组。我能想到的唯一方法就是做obj.clr().getById('').getByNames('');
之类的事情并将clr: function() {this.ary=[]; return this;}
添加到obj
答案 1 :(得分:0)
你可以做this.arr.length = 0
函数的第一行,它会截断数组,因此它没有任何成员。