On 2010-04-16, at 14:31, David Herman wrote:
> Tucker: if the "property-nameness" attribute weren't transferrable but names
> were objects with property tables, do you think that would be powerful
> enough? Or would you want the ability to define custom constructors, e.g.:
>
> function MyCustomKindOfNamespace() {
> Object.becomePropertyName(this);
> // ...
> }
I was thinking that for exploratory purposes, you might want a custom
constructor so you could, say, enumerate all the names in your custom
namespace, or test for a name being in your namespace. But I could do that
with just properties by (something like):
private customnames = [];
private custom;
function CustomName (pretty) {
let name = new Name;
name[custom] = pretty;
name.toString = function () { return "custom::" + this[custom]; }
customnames.push(name);
return name;
}
function isCustom(name) { return name.hasOwnProperty(custom); }
etc.
A conundrum is that you don't want private names to be revealed by property
enumeration in general, but IWBN if they could be enumerated by someone with
access to the namespace. Using the idea of names having properties themselves,
if there were a way to say "enumerate the properties that have some property",
you could use a private property as a capability to get at private names. I'm
sure we can have hours of fun suggesting how to extend the `for` syntax to
handle that. :)
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss