Peter_Chea
04-14-2004, 03:52 PM
Hi, I create two different instances of of class ItemsFilter. But somehow their instance variable "items" point to the same object. Anyone know how to fix this?
-Peter
<canvas width="749" height="707" debug="true">
<class name="ItemsFilter" extends="node">
<attribute name="items" value="new Object()"/>
<!--
<method event="oninit">
items = new Object();
</method>
-->
<method name="add" args="s">
items[s] = 1;
debug.write("add: " + s);
</method>
<method name="display">
var str = "";
for( var k in items)
{
str += k + ", "
}
debug.write(str);
</method>
</class>
<view>
<ItemsFilter name="filter1"/>
<ItemsFilter name="filter2"/>
<method event="oninit">
filter1.add("item1");
filter2.add("item2");
debug.write("filter1");
filter1.display();
debug.write("filter2");
filter2.display();
</method>
</view>
</canvas>
output:
filter1
item2, item1,
filter2
item2, item1,
correct output should be:
filter1
item1,
filter2
item2,
-Peter
<canvas width="749" height="707" debug="true">
<class name="ItemsFilter" extends="node">
<attribute name="items" value="new Object()"/>
<!--
<method event="oninit">
items = new Object();
</method>
-->
<method name="add" args="s">
items[s] = 1;
debug.write("add: " + s);
</method>
<method name="display">
var str = "";
for( var k in items)
{
str += k + ", "
}
debug.write(str);
</method>
</class>
<view>
<ItemsFilter name="filter1"/>
<ItemsFilter name="filter2"/>
<method event="oninit">
filter1.add("item1");
filter2.add("item2");
debug.write("filter1");
filter1.display();
debug.write("filter2");
filter2.display();
</method>
</view>
</canvas>
output:
filter1
item2, item1,
filter2
item2, item1,
correct output should be:
filter1
item1,
filter2
item2,