Forgot about superclassing, here it is
// Declaring mixins.
Persistence = fn(klass){
proto = klass.prototype
proto.saveWithoutFeatureX = proto.save
proto.save = fn(){}
}
On Tuesday, November 6, 2012 1:28:29 PM UTC+4, Alexey Petrushin wrote:
>
> > And in which way can you skip this in normal prototype inheritance?
> Not sure what do You mean, with functional mixins You can skip long
> prototype chains, there are always only one prototype in the chain. Methods
> assembled with applying set of function/mixins to it.
>
> // Declaring mixins.
> Persistence = fn(klass){
> // Sort-of class-level / singleton method.
> klass.findByName = fn(){}
>
> // Object - level method.
> klass.prototype.save = fn(){}
> }
>
> // Model
> Model = fn(){}
>
> // Injecting mixins.
> Persistence(Model)
> Validations(Model)
>
> So, there's no need for long prototype chains.
>
> It actually more advanced than prototypical because allows multiple
> inheritance and inheriting both class-level and obj-level methods.
>
--
Job Board: http://jobs.nodejs.org/
Posting guidelines:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" 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/nodejs?hl=en?hl=en