I'd argue that best-practice is #4, the 'in' operator.
 
#1 is Ecmascript legacy useful for prototype-based inheritence, to tell
whether an object has the property or one farther up its prototype
chain. Flex makes almost no use of prototype-based inheritence.
 
#2 isn't useful because if it compiles, the property definitely exists.
 
#3 can be misleading because you can't distinguish between the property
not existing and the property containg a value which coerces to false.
 
- Gordon


________________________________

From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of Troy Gilbert
Sent: Thursday, May 24, 2007 11:19 AM
To: [email protected]
Subject: Re: [flexcoders] Checking if an Object has as property/element



Interesting, I've never seen that one, Alex... nicely expressive.

So, in summary, one can test the existent of a property with:

if (myObject.hasOwnProperty("property")) ...
if (myObject.property ) ...
if (myObject["property"]) ...
if ("property" in myObject) ...

The first one is a function returning a Boolean. Obvious.

The second and third ones return the actual values, which implicitly
convert to true (for everything but null and "", which implicitly
convert to false), or if the property doesn't exist returns undefined,
which implicitly converts to false. 

The fourth one... well, that's basically identical to the first one
where it returns a Boolean.

Troy.



On 5/24/07, Alex Harui < [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> >
wrote: 

        if ("blah" in Object)
        
        Should also work

        
        
        -----Original Message-----
        From: [email protected]
<mailto:flexcoders%40yahoogroups.com>  [mailto:
[email protected] <mailto:flexcoders%40yahoogroups.com> ] On
        Behalf Of Tom Chiverton
        Sent: Thursday, May 24, 2007 6:53 AM
        To: [email protected]
<mailto:flexcoders%40yahoogroups.com> 
        Subject: Re: [flexcoders] Checking if an Object has as
property/element
        
        On Thursday 24 May 2007, Christopher Olsen wrote:
        > If i do if Object.blah == null i get an error because blah
doesn't
        exist
        
        hasOwnProperty(), or just if (Object.blah)
        
        -- 
        Tom Chiverton
        Helping to globally maintain error-free solutions
        on: http://thefalken.livejournal.com
<http://thefalken.livejournal.com> 
        
        ****************************************************
        
        This email is sent for and on behalf of Halliwells LLP.
        
        Halliwells LLP is a limited liability partnership registered in
England
        and Wales under registered number OC307980 whose registered
office
        address is at St James's Court Brown Street Manchester M2 2JF. A
list
        of members is available for inspection at the registered office.
Any
        reference to a partner in relation to Halliwells LLP means a
member of
        Halliwells LLP. Regulated by the Law Society.
        
        CONFIDENTIALITY
        
        This email is intended only for the use of the addressee named
above and
        may be confidential or legally privileged. If you are not the
addressee
        you must not read it and must not use any information contained
in nor
        copy it nor inform any person other than Halliwells LLP or the
addressee
        of its existence or contents. If you have received this email in
error
        please delete it and notify Halliwells LLP IT Department on 0870
365
        8008.
        
        For more information about Halliwells LLP visit
www.halliwells.com <http://www.halliwells.com> .
        
        --
        Flexcoders Mailing List
        FAQ:
http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
<http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt> 
        Search Archives:
        http://www.mail-archive.com/flexcoders%40yahoogroups.com
<http://www.mail-archive.com/flexcoders%40yahoogroups.com>  
        Yahoo! Groups Links
        
        

        

        


 

Reply via email to