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

The things you are referring to are known as expressions. such as

Arguments : ()
( ArgumentList )

Apendix 3 on ES standar

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