Actually, I am not using Class.create on B.. sorry if I was misleading
by calling it a class. this.options is initially defined inside the B
object like so:
B = {
// default options
options: {
//...
},
initialize: function () {
// ...
}
};
Hope that clears things up.
Thanks,
Cameron
On Jun 15, 4:53 pm, "T.J. Crowder" <[email protected]> wrote:
> Hi,
>
> You didn't actually say, but it looks like you're using Prototype's
> Class.create to create your `B` class, is that right? If so, you don't
> call the `initialize` function directly, you use `new B(...)`. E.g.:
>
> * * * *
> var b = new B({ // <== not B.initialize
> foo: "foo",
> bar: "bar",
> callback1: function () {
> // do some stuff
> }.bind(this),
> callback2: function () {
> // do some more stuff
> }.bind(this)});
>
> * * * *
>
> Internally, the constructor function will call `initialize` for you.
>
> Separately, in your B initializer code:
>
> * * * *
> // in class B's initialize function:
> initialize: function(options) {
> Object.extend(this.options, options);
> // ...}
>
> * * * *
>
> Do you every assign anything to `this.options`? Because that code
> isn't...
>
> Don't know whether either of those is actually the problem, but they
> jumped out.
>
> HTH,
> --
> T.J. Crowder
> Independent Software Consultant
> tj / crowder software / comwww.crowdersoftware.com
>
> On Jun 15, 4:53 pm, Cameron <[email protected]> wrote:
>
>
>
> > Hello all,
>
> > I have been getting a strange error from IE when I run my web app
> > built on prototype. I think it might be caused by Object.extend, but
> > I'm not positive. I am tying to pass an options object to an
> > initialization function of my class, and then within that function, I
> > extend the default options with the options that are passed in (pretty
> > standard practice, from what I can tell). Two of my options, however,
> > happen to be callback functions that are bound to the class that is
> > doing the initialization on this new object.
>
> > For example:
>
> > // inside some method of class A:
>
> > // initialize class B with config options
> > var b = B.initialize({
> > foo: "foo",
> > bar: "bar",
> > callback1: function () {
> > // do some stuff
> > }.bind(this),
> > callback2: function () {
> > // do some more stuff
> > }.bind(this)
>
> > });
>
> > ....
>
> > // in class B's initialize function:
> > initialize: function(options) {
> > Object.extend(this.options, options);
> > // ...
>
> > }
>
> > When I remove the Object.extend, it seems to stop giving me the error
> > (but then, of course, I don't get the callback...). Is there something
> > wrong with extending an object like this (specifically when it's bound
> > to another object?). I've done some searching on this particular
> > error, but it seems like it could occur in many different situations
> > (read:http://cappuccino.org/discuss/2010/03/01/internet-explorer-global-var...
> > this is crazy....).
>
> > Any insight would be greatly appreciated!
>
> > Thanks,
> > Cameron
--
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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/prototype-scriptaculous?hl=en.