On Fri, Jul 12, 2013 at 6:45 AM, Rick Waldron <[email protected]> wrote:
>
>
>
> On Fri, Jul 12, 2013 at 12:22 AM, Andrew Fedoniouk
> <[email protected]> wrote:
>>
>> Quite often I see constructions like this:
>>
>> foo({one:1,two:2});
>>
>> so call of function with single parameter - object literal.
>> Idiom named "Poor man named arguments passing"
>>
>> Idea is to extend existing JS/ES syntax calls to support
>> simple form of the call above:
>>
>> foo {one:1,two:2 };
>>
>> Semi-formally that syntax looks like:
>>
>> function-call:
>> <name-token> '(' <parameter-list> ')' // existing form
>> <name-token> <object-literal> // proposal
>
>
> Given:
>
> function foo(){ return 1; }
>
>
> This is a valid function call:
>
> foo
> ()
>
> // 1;
>
> But this is valid, too (though, not a function call):
>
> foo <-- identifier
> {} <-- empty block
>
> // function foo() { return 1; }
>
This construction
foo {};
is an equivalent of:
foo({});
but not
foo();
To call function with empty param list you still need empty '('')' brackets.
>
> Also, I could be wrong, but wouldn't there need to be a way to disambiguate
> UnaryExpression?
>
> typeof foo { one: 1, two: 2 }
>
> Maybe this is not an issue, or easily dealt with?
This is not an issue. Parsed exactly the same as:
typeof foo({ one: 1, two: 2 })
--
Andrew Fedoniouk.
http://terrainformatica.com
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss