For general Javascript questions I had excellent experiences with stackoverflow.com
On Tue, Apr 17, 2012 at 2:27 PM, Scott Ware <[email protected]> wrote: > Thanks for the reply! Yeah, sorry about going "off topic" in this > forum...but I haven't seen anywhere else that is as helpful as this > community, that at least somewhat deals with what I'm trying to seek help on > ;) > > > On Tuesday, April 17, 2012 8:16:05 AM UTC-4, Axel Kittenberger wrote: >> >> This is much rather a Javascript question than a Node.JS question. No, >> there is no standard that you must do, and thats the great thing about >> Javascript in that it provides you prototypes as a powerful basic >> mechanism you can build code organisations with rather than forcing a >> specific style of organisation on you like Java or C++. >> >> If you cut away this hack >> > if (!(this instanceof Tester)) { >> > return new Tester(name); >> > } >> than what you did is the basic way prototypes work. >> >> Otherwise you must precise your question. I for one came up with >> following helper for (multiple) inheritance and use _ to prefix what I >> consider a "private" variable. I don't know how well it works for >> border cases, for me it does what I expect it to: >> >> /** >> | Subclassing helper. >> | >> | sub: prototype to become a subclass. >> | base: either a prototype to become the base. >> | or a table of prototypes to become the base for multiple >> | inheritance. >> */ >> var subclass = function(sub, base) { >> function Inherit() {} >> if (base.constructor === Object) { >> // multiple inheritance >> for(var name in base) { >> for(var k in base[name].prototype) { >> if (k === 'constructor') continue; >> if(Inherit.prototype[k]) { >> throw new Error('Multiple inheritance clash for >> '+sub+' :'+k); >> } >> Inherit.prototype[k] = base[name].prototype[k]; >> } >> } >> } else { >> // single inheritance >> Inherit.prototype = base.prototype; >> } >> sub.prototype = new Inherit(); >> sub.prototype.constructor = sub; >> }; >> >> I like it, but it is likely not for everybody. >> >> On Tue, Apr 17, 2012 at 1:53 PM, Scott Ware <[email protected]> wrote: >> > Hello, Node.js community! >> > >> > I've been using Node.js for about 8 months now, and have been constantly >> > learning as much as I can about it as well as bettering my knowledge on >> > JS >> > as well. Its a fantastic product, and can't remember the last time I had >> > this much fun hacking away at things! >> > >> > My question is in regards to OOP: Is there a "standard" or specific >> > method >> > that most of the community uses or is it mainly all just personal >> > preference? I've been browsing as much code as I can on Github, looking >> > at >> > the different methods and what not. Such as Pseudo-classical, >> > Prototypal, >> > etc. >> > >> > Currently I include this in my constructor(s): >> > >> > function Tester(name) { >> > if (!(this instanceof Tester)) { >> > return new Tester(name); >> > } >> > >> > this.name = name; >> > } >> > >> > Tester.prototype.say = function () { >> > console.log('Hello, ' + this.name); >> > } >> > >> > var person = new Tester('Scott'); >> > person.say(); >> > >> > To that, I have read the "Good Parts" book and some others, and also >> > wonder >> > if there is a style that's preferred based on certain methods or >> > use-cases >> > that might be deprecated or soon will be? Like getting away from the >> > using >> > 'new' style of coding. >> > >> > Sorry if this is such a n00b question. When I write code, programs, I >> > just >> > want to make sure that I have done my research and am doing it the right >> > way, vs a "wrong?" way. >> > >> > Thanks all, in advance! >> > >> > -- >> > 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 > > -- > 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 -- 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
