fwiw, I have few APIs that use null or undefined / void 0 as explicit
action to remove an item ... an example.
```javascript
function cookie(key, value) {
if (arguments.length === 1) return get(key);
if (value == null) return del(key);
set(key, value);
return value;
}
```
Although I would use `function cookie(...args){}` as soon as supported
and/or `arguments` would be undefined ... no big deal.
In the other case I would simply do something like:
```
function splice(a, b, ...rest) {
var numArgs = rest.length + (b !== void 0) + (a !== void 0);
}
```
Not sure why this is so needed though.
Cheers
On Sun, Nov 10, 2013 at 12:59 PM, Allen Wirfs-Brock
<[email protected]>wrote:
>
> On Nov 10, 2013, at 12:52 PM, Oliver Hunt wrote:
>
> > I don’t fully understand this — what is the reason for needing to know
> actual argument count? The historical reason was that if i have a var arg
> function with a few required parameters i don’t have any nice way of
> iterating the optional args.
> >
> > Default and rest parameters seem to solve this use case.
>
> The legacy reason is that there are existing APIs that were probably
> originally implemented in C++ where the behavior of the function was
> determined by the number of passed arguments rather than by their actual
> values.
>
> The continuing reason is that WebIDL overloading model encourages people
> to design new APIs that have that same characteristic. And so far, nobody
> has convinced the WebIDL maintainers to abandon such overloading as a
> specification technique.
>
> Allen
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
>
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss