每次调用一个对象时如何运行一个函数

时间:2011-05-10 13:09:58

标签: javascript

我正在创建一个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。( '');

所以我需要每个链的数组然后在下一个对象调用中清除它

问候

2 个答案:

答案 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函数的第一行,它会截断数组,因此它没有任何成员。