- From: Kristof Zelechovski <giecrilj@stegny.2a.pl>
- Date: Tue, 12 Aug 2008 13:53:31 +0200
It is probably too late for that but I like the concept of a default property much better than metaattributes like IndexGetter. For example, document.forms(0) means "call forms on document with argument 0". That is impossible because forms is not a function so we look into forms collection and we see that it has the default method named item. So we proceed by expanding it to document.forms.item(0) and we see it works. I like it because it is simple, elegant and generic, whereas IndexGetter and what you have looks ad-hoc. I have never seen document.forms.main used to get at the form named "main" but probably I have not seen that much. I wonder how common it is. Of course, I agree that it is best to be explicit and not to rely on such tricks at all. The downside is that, for example, while a.getAttributeNode("href").value = url is technically superior to a.href = url, it is much harder to read so care must be taken not to overshoot. But form.elements.item("main") is just fine. Regarding how the named elements get to be true properties, the shadowing behavior can be specified without recurring to getters. It is sufficient to say that an intrinsic property is never replaced by a constructed shortcut property and we get the same result. Chris -----Original Message----- From: whatwg-bounces@lists.whatwg.org [mailto:whatwg-bounces at lists.whatwg.org] On Behalf Of Garrett Smith Sent: Wednesday, August 06, 2008 8:49 AM To: Thomas Broyer Cc: whatwg at whatwg.org Subject: Re: [whatwg] HTML 5 : Misconceptions Documented On Tue, Aug 5, 2008 at 4:02 PM, Thomas Broyer <t.broyer at gmail.com> wrote: > On Tue, Aug 5, 2008 at 8:03 AM, Garrett Smith wrote: >> On Mon, Aug 4, 2008 at 3:17 PM, Thomas Broyer wrote: >>> >> First off, the IndexGetter behavior on the HTMLCollection[1] is the >> authors imagination. > > Aren't "document.forms[0]" and "document.forms.myform" working? > Can you be more specific and direct in your reply? It isn't clear what your point is. >> The following example shows that indexed Properties exist on >> NamedNodeMap, HTMLCollection, NodeList (just like they do on Arrays). >> There is no [[ IndexGetter ]] as Cameron likes to make pretend. > > This is an "implementation detail" of the ECMAScript binding. > In EcmaScript, the property access operators seem to look like a "getter" to Cameron. What they really do is provide access to properties added to the collection, or, in one case (on one implementation), this seems implemented as a "getter". A "getter" is a method that gets the value of a property of that name.
Received on Tuesday, 12 August 2008 04:53:31 UTC