That's a fun bit of trickery you've got going on. You're kind of imitating
what the native instantiation of an object is doing in the background. I can
imagine a couple of ways in which this might be useful for security reasons,
although really obscurely.  What were you thinking this could be used for?

On Tue, Aug 9, 2011 at 3:25 PM, Nick Morgan <[email protected]> wrote:

> Hi all
>
> Just thought I'd share something I had a little fun hacking together
> tonight: https://github.com/skilldrick/funcobj
>
> I wanted to see if I could create an inheritance system in JavaScript
> only using closures. I've not allowed object literals or the dot
> operator, which means method lookup happens in switch statements.
>
> I'd be really interested to see what you guys think, and if there's
> anything I've done that's stupid (apart from the whole project).
>
> This is the guts of the system:
>
> //methodsInitializer: a function that returns methods for the new object
> //initArgs: initialization arguments for the methodsInitializer
> //superObject: an optional object to inherit methods
> function objMaker(methodsInitializer, initArgs, superObject) {
>  var methods = apply(methodsInitializer, initArgs);
>
>  function dispatch(methodName, self) {
>    self = self || dispatch; //if self given use it, otherwise use this
> function
>    var dispatchArguments = arguments;
>    var method = methods(methodName);
>    if (method) {
>      return function () {
>        return applyWithSelf(method, self, arguments);
>      };
>    }
>    if (superObject) { //re-call with superObject (this can happen
> recursively)
>      return function () {
>        //when calling super, make sure self is set to the method receiver
>        return apply(superObject(methodName, self), arguments);
>      }
>    }
>    log("Method", methodName, "not known");
>  }
>  return dispatch;
> }
>
>
> --
> Nick Morgan
> http://skilldrick.co.uk
> @skilldrick
>
> Save our in-boxes! http://emailcharter.org
>
> --
> To view archived discussions from the original JSMentors Mailman list:
> http://www.mail-archive.com/[email protected]/
>
> To search via a non-Google archive, visit here:
> http://www.mail-archive.com/[email protected]/
>
> To unsubscribe from this group, send email to
> [email protected]
>

-- 
To view archived discussions from the original JSMentors Mailman list: 
http://www.mail-archive.com/[email protected]/

To search via a non-Google archive, visit here: 
http://www.mail-archive.com/[email protected]/

To unsubscribe from this group, send email to
[email protected]

Reply via email to