On Dec 19, 2010, at 2:51 AM, Garrett Smith wrote:

> On 12/19/10, fernando trasvina <trasv...@gmail.com> wrote:
>> 
>> On Dec 19, 2010, at 2:17 AM, Garrett Smith wrote:
>> 
>>> On 12/18/10, Juriy Zaytsev <kan...@gmail.com> wrote:
>>>> On Sun, Dec 19, 2010 at 2:02 AM, Garrett Smith
>>>> <dhtmlkitc...@gmail.com>wrote:
>>>> 
>>>>> On 12/18/10, Ezequiel <ezequ...@ziggyism.com> wrote:
>>>>>> On Dec 17, 2:37 am, Juriy Zaytsev <kan...@gmail.com> wrote:
>>>>>>> var beget = (function() {
>>>>>>> function F(){ };
>>>>>>> return function(o) {
>>>>>>>   F.prototype = o;
>>>>>>>   return new F;
>>>>>>> };
>>>>>>> 
>>>>>>> })();
>>>>>>> 
>>>>>> 
>>>>>>> return new F;
>>>>>> 
>>>>>> Are there any penalties for not including the parentheses when you're
>>>>>> invoking a constructor?
>>>>>> 
>>>>>> ie. new F; versus new F();
>>>>>> 
>>>>> 
>>>>> It is the `new` operator, not `Arguments`, that makes it a New
>>>>> Expression.
>>>>> 
>>>>> More is explained here (thread tip: ignore troll response):
>>>>> <
>>>>> https://groups.google.com/group/comp.lang.javascript/browse_thread/thread/6bb13a70aa769e17/ce53a37da77d354b#ce53a37da77d354b
>>>>>> 
>>>> 
>>>> 
>>>> | Parenthesis is either `Arguments` or as Grouping Operator, depending on
>>>> | the context in which it appears. When parenthesis appear to the right
>>>> of
>>>> | a MemeberExpression, then a CallExpression is formed. [...]
>>>> 
>>>> ..or to the right of another CallExpression:
>>> 
>>> Ah, that's right.
>> 
>> parenthesis are for function calling not for arguments, arguments object is
>> created either you passed arguments or no.
> 
> We are discussion the ECMAScript grammar productions known as
> `Arguments`, `NewExpression`, `MemberExpression`, and
> `CallExpression`. Did you follow the c.l.js thread URL I posted in my
> message? Did you see kangax message about those?
> 
> Please also see the ECMA-262 specification. Ed 3 section on LHS
> expressions linked here for convenience:
> <http://bclary.com/2004/11/07/#a-11.2>
> 
>> the new operator is the one that triggers the object creation process, but
>> for consistency i would recommend to put the parenthesis, because in the end
>> the function will get called.
> 
> The new operator is what makes the NewExpression; right. It is
> `Arguments` that is optional. What you are calling the "parenthesis"
> is formally known as `Arguments`.
> 
> You seem to be referring to the sore spot known as the `arguments`
> object, available in the function call. Am I right? An `arguments`
> object is required to be created, though that is optimized in certain
> situations by certain implementations (if a tree falls in the woods,
> does it make a sound?). And there are a few c.l.js threads where we
> discussed implementations that optimize away of the creation of
> `arguments` object.
> 
> But anyway, the `arguments` object and the grammar production known as
> `Arguments` are two totally different things. We're discussing the
> latter here.
> -- 
> Garrett
> 

Ohh i see where you come from. either way your discussion seems that its not 
resolving anything. and yes i know what you are talking about, and yes i know 
what you refer as Arguments
but no, there is no such thing as Arguments on lexical grammar on ES standard 
Documentation but ok we can agree what is that. even so. my point is not about 
what implementations do
because that is not part of the standard.

What i recommend the guy (which you haven't) is to use the parenthesis even 
when are not needed.

> -- 
> To view archived discussions from the original JSMentors Mailman list: 
> http://www.mail-archive.com/jsmentors@jsmentors.com/
> 
> To search via a non-Google archive, visit here: 
> http://www.mail-archive.com/jsmentors@googlegroups.com/
> 
> To unsubscribe from this group, send email to
> jsmentors+unsubscr...@googlegroups.com

-- 
To view archived discussions from the original JSMentors Mailman list: 
http://www.mail-archive.com/jsmentors@jsmentors.com/

To search via a non-Google archive, visit here: 
http://www.mail-archive.com/jsmentors@googlegroups.com/

To unsubscribe from this group, send email to
jsmentors+unsubscr...@googlegroups.com

Reply via email to