It's definitely not being cast off... Just scrutinized :-) -----Original Message----- From: "Dan Webb" <[EMAIL PROTECTED]> To: prototype-core@googlegroups.com Sent: 5/10/2007 11:52 AM Subject: [Prototype-core] Re: Class.create() and method binding
> No, seriously - how often do people copy instance methods around? Is the > minority really enough to justify the mass binding on each instance > creation? How about solving the problem in a real way, by realizing what > you're doing an compensating for that: > > func = a.showA.bind(a) People do copy methods around without knowing it all the time: when assigning event handlers and using the enumerable methods most notably and this always causes confusion. Perhaps I didn't give real enough examples. MANY people try to do things like this and get very confused: var w = new MyWidget(); $('my_el').observe('click', w.someMethod); then find that this has changed in the context of the event handler. This is by no means an edge case: It happens all the time. Even when you know that this is the case and know about bind() it get really ugly as you find lots of places where you need bind and this would clean up a lot of those. My main point is that Class.create() does not create what anyone thinks of as a class. It's sort of looks like one but doesn't do anything that classes do. Why not make it behave more like a class? In Java, Ruby and just about all class-based languages methods have a binding to their instance. This would be mimicking that behavior. Plus, if you want the unbound version of the method you can get it from the prototype. I really don't think it's such a bad idea and I'm slightly surprised that you immediately cast it off. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Prototype: Core" group. To post to this group, send email to prototype-core@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/prototype-core?hl=en -~----------~----~----~----~------~----~------~--~---