I think you'd be better off using Depender.

On Wed, Apr 7, 2010 at 6:24 AM, batman42ca <[email protected]> wrote:

> > If you had the external file "foo.js" and inside "foo.js" was a class
> called
> > "bar", you want, the command "new bar()" to load "foo.js" in a script tag
> > and initiate the class "bar", is this right?
>
> Yes and no. More likely foo.js would contain a class called Foo. So
> given the name of the class, I know the name of the file.
>
> > to intercept the call to "new"
>
> I'm wondering if instead of that, I could create a new function let's
> just call it "dnew" for "Dependant New" or something like that. Not a
> great name but the only other short name I can think of is "newd"
>
> So I instead of this:
>
> myObj = new MyClass(param1,{
>  option1 : 1,
>  option2 : 2
> });
>
> I would do this
>
> myObj = dnew(MyClass(param1,{
>  option1: 1,
>  option2 :2
> )));
>
> then dnew checks for the existance of MyClass, if it doesn't already
> exist, it loads MyClass.js, then regardless it calls "new" although
> I'm not quite sure how I could capture the input to "dnew" and use it
> to call "new". I see the need for eval() in my future.
>
> On Apr 6, 11:18 pm, "Matthew Hazlett" <[email protected]> wrote:
> > If you had the external file "foo.js" and inside "foo.js" was a class
> called
> > "bar", you want, the command "new bar()" to load "foo.js" in a script tag
> > and initiate the class "bar", is this right?
> >
> > Well, the only way that I know of that you could accomplish such a thing
> in
> > pure JS is to intercept the call to "new" determine what file the class
> > desired is located in. But, short of joining the Mozilla dev team and
> > writing that in to the next version of JavaScript I would venture to say
> you
> > are out of luck. As far as I know, there is no hook or event that gets
> > triggered when you issue the command "new".
> >
> > However, thinking out loud a minute you might be able to trap for an
> error
> > then use a async ajax query that calls a php function that scans a
> directory
> > of files for the class you want.  Returns the file name and dynamically
> > loads it, then tries to create the class.  (takes a deep breath, then
> falls
> > over from exhaustion)
>
>
> --
> To unsubscribe, reply using "remove me" as the subject.
>

Reply via email to