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

