If only we could have prototypal inheritance for docs!

On Mon, Apr 8, 2013 at 10:36 AM, Isaac Schlueter <[email protected]> wrote:
> If you create many objects of the same Writable type, it'll be
> significantly faster to subclass and use a constructor.  If you only
> create one (or a very small number) it's equivalent performance-wise.
>
> I prefer to subclass if I'm going to add a lot of custom
> functionality, just because it's a bit cleaner in other code that uses
> that class.  For example, Socket objects inherit from Duplex, which
> inherits from Readable (prototypally) and Writable (parasitically).
>
> I'd accept a doc patch that mentions the error event, but it should
> probably just link back to the events.html page where it's explained.
> There's a lot of duplication in our documentation, but sadly, even the
> duplication is not quite consistent, so you end up having holes like
> this.
>
> On Mon, Apr 8, 2013 at 12:15 AM, greelgorke <[email protected]> wrote:
>> not really. you create the function once on module load, assignment is in a
>> creation:
>>
>> foo.js:
>> var Writable = require('stream').Writable
>>   , _write = function(chunk, encoding, callback){
>>                     // do something with chunk
>>                     // this ref points to a Writable instance
>>                  }
>>
>> module.exports = myCustomStream(){
>>     var s = new Writable()
>>        s._wirte = _write
>>     return s
>> }
>>
>>
>> it may be even more performant, because the _write function sits in the
>> object itself not in it's prototype. A lookup up the prototype chain is less
>> performant, than a lookup of the 'own' property.
>>
>> but first you have to benchmark your specific case, before arguing about
>> performance.
>>
>> Am Montag, 8. April 2013 04:07:59 UTC+2 schrieb Liam:
>>>
>>> Isn't there a cost of assigning a function to an object every time you
>>> create such an object, vs. assigning to .prototype of a subclass?
>>> At the very least you're creating a closure around any variables in scope
>>> at the point of the assignment.
>>>
>>>
>>> On Sunday, April 7, 2013 1:27:50 PM UTC-7, greelgorke wrote:
>>>>
>>>> 2. both ways work. you could subclass or just create a Writabel instance
>>>> and attach a new _write function. It's more a matter of style and applied
>>>> paradigm. some prefer the mixin-approach, some inheritance. me personally
>>>> prefer the mixin approach, because it's cleaner and more focused on actual
>>>> work, than pseudoclass-boilerplating.
>>>>
>>>> Am Sonntag, 7. April 2013 21:02:04 UTC+2 schrieb Liam:
>>>>>
>>>>> The v0.10 docs don't mention an 'error' event for Stream.Writable. Is
>>>>> that a docs omission, or an API change?
>>>>>
>>>>> Stream.Writable#write() takes a callback that provides an error, but the
>>>>> callback is described as 'optional'. If errors were only reported this 
>>>>> way,
>>>>> surely it wouldn't be optional?
>>>>>
>>>>> Also, the docs don't give an example of defining a custom
>>>>> Stream.Writable. Should we define a subclass formally, or simply:
>>>>>
>>>>> var s = new Stream.Writable()
>>>>> s._write = function(...) {} // feels odd; I'm used to attaching
>>>>> functions to prototypes
>>>>>
>> --
>> --
>> 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
>>
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "nodejs" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>

-- 
-- 
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

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to