I have a class

var a = Class.Create({

function initialize() {
  var _items = [];

  Object.defineProperties(this, {
    'items': {
        get: function () {
            return Object.clone(_items);
        },
        enumerable: true
    }
  });
  ...
}
....
function indexOf(item) {
  return -1;
}
....
});

then I create an instance of the class

var b = new a();

then I fill the _items with the data

[
 { name: 'Joe', last: 'Celko' },
 { name: 'Ivan', last: 'Susanin' }
]

and ovewrite the indexOf method with thw new one

b.indexOf = function(item) {
        var index = -1;
        var items = this.items;

        items.detect(function(el, idx) {
                var b = (el.name === item.name) && (el.last === item.last);
                b && (index = idx);
                return b;
        });
        return index;
};

then i try to seach

b.indexOf({ name: 'Joe', last: 'Celko' });

and always get -1 !!!
I try to debug and detect the this._each in Enumerable.each never goes
into, but if I chnge

return Object.clone(_items); --->> return _items;

everything goes ok and returns 0! Why?
Help me please. I cannot expose original items because changes on it
maybe damaged

-- 
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com.
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.

Reply via email to