I like $this personally - it is closest to original meaning, and has an additional bonus that some editors (such as vim) highlight it properly
On Sat, Mar 5, 2011 at 3:34 PM, Lasse Reichstein <[email protected] > wrote: > On Thu, 03 Mar 2011 20:08:33 +0100, Jarek Foksa <[email protected]> > wrote: > > When writing constructor functions it's very convenient to create "var >> self = this" assignment so that we could easily access other >> properties and methods even if default context has changed, for >> example: >> >> var Dialog = function() { >> var self = this; >> this.width = 400; >> this.setWidth = function(newWidth) { >> self.width = newWidth; >> } >> } >> > > Notice that this creates a new function object for every Dialog object. > If you just did > Dialog.prototype.setWidth = function(newWidth) { > this.width = newWidth; > }; > then you only create one function in total. > If you have many Dialog objects, it's a waste of memory. > > I'm not sure why you want to be able to extract the setWidth function > and call it without the Dialog object present. It seems like premature > optimization. If you ever need to extract the function, you can use > myDialog.setWidth.bind(myDialog) > at that time. > > > But is it really a good idea to use "self" variable name for this >> purpose? It seems to be already assigned to window object by default, >> so I guess redefining it might break some third-party code. >> > > It shouldn't. You declare "self" as local to the Dialog function. > That means that it's only visible to the code inside that function > (including nested functions). You shouldn't have third-party code > inside your own source code, so it won't be affected. > > > What other names would you recommend? Is there some other convention? >> > > The name "self" is fine. I challenge the need for using it here. > > /L > > > -- > 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] > -- Arieh Glazer אריה גלזר 052-5348-561 http://www.arieh.co.il http://www.link-wd.co.il -- 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]
