Hi currently the rdBuff is shared between all instatces try to create the instance variable (here rdBuff) inside the initialize function and with the this keyword its not default like in C++ etc...
var SomeClass = Class.create({ initialize: function(name) { this.rbBuffer = {}; }, setBuffer: function(val) { this.rbBuffer.test = val; }, . . . hope it helped cheers yuval On Sat, Dec 4, 2010 at 5:01 PM, Luke <kickingje...@gmail.com> wrote: > Hi, > > I've got a weird behavior here, or rather a behavior I don't > understand. If you take the following Class: > > --- > var SomeClass = Class.create({ > > rbBuffer: nulll, > > setBuffer: function(val) { > this.rbBuffer = val; > }, > > getBuffer: function() { > return this.rbBuffer; > } > }); > --- > > and play around a little bit: > > --- > var c1 = new SomeClass(); > var c2 = new SomeClass(); > > c1.setBuffer(true); > c2.setBuffer(false); > > log(c1.getBuffer()); // PRINTS TRUE > log(c2.getBuffer()); // PRINTS FALSE > --- > > everything works as expected. But if you alter that class and make > rbBuffer a JSON-object and try to set/get properties of that object, > it kinda gets shared: > > --- > var SomeClass = Class.create({ > > rbBuffer: {}, > > setBuffer: function(val) { > this.rbBuffer.test = val; > }, > > getBuffer: function() { > return this.rbBuffer.test; > } > }); > > var c1 = new SomeClass(); > var c2 = new SomeClass(); > > c1.setBuffer(true); > c2.setBuffer(false); > > log(c1.getBuffer()); // PRINTS FALSE > log(c2.getBuffer()); // PRINTS FALSE > --- > > rbBuffer.test of the first object is overwritten with the value you > set on the second object, as if the use the same variable. > > Does anyone know why this is, and how to work with it? > > Thanks > Lukas > > -- > 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-scriptacul...@googlegroups.com. > To unsubscribe from this group, send email to > prototype-scriptaculous+unsubscr...@googlegroups.com<prototype-scriptaculous%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/prototype-scriptaculous?hl=en. > > -- 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-scriptacul...@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.