Re: Getters establish own properties, or why is [NamedPropertiesObject] discouraged?

On 2/24/12, Boris Zbarsky <bzbarsky@mit.edu> wrote:
> On 2/24/12 1:05 PM, Garrett Smith wrote:
>> No, using getter/setter instead does not mean that the properties are
>> "own".
>
> Per current webidl spec, defining a "getter" or "setter" on the
> interface does mean the properties involved are own properties.  Please
> see the spec.
>
What implementation does that?

>> In fact, it is often the case where an object's getter or
>> setter resides on the prototype chain. For example, the style
>> property, in Gecko is a getter on the prototype chain:-
>>
>> document.body.hasOwnProperty("style");.
>
> That's not a "getter" in the IDL.
>
I didn't say it was. That line of code shows that `document.body` does
not have an own `style` property. The reason for showing that is to
demonstrate that 1) The element has a style property, 2) that it is
not an /own/ property, and 3) that it is implemented as a getter, on
the prototype and not as a getter on the object itself.

> Try something more like this:
>
>    <body name="foo">
>    <script>
>      alert(document.getElementsByTagName("body").hasOwnProperty("foo"));
>    </script>
>
What's that supposed to show?
-- 
Garrett
Twitter: @xkit
personx.tumblr.com

Received on Saturday, 25 February 2012 02:21:25 UTC