> shouldn't there be a === or !== in there somewhere to make
> sure you're talking about _exactly_ the same object rather 
> than one which just has the same value..?

Good question...
In my understanding - i.e. please correct me if I'm wrong! - when
testing objects for equality the simple and the strict equality operator
are completely interchangeable.

We are not comparing values, which can be of different types (and thus
provoke 'false positives' with the simple equality operator), but
references, which have a simple, 'binary' quality: either they do point
at the same place in memory or they don't. 
And two objects - by definition? - always occupy two distinct locations
in memory, completely independent of wether they are of the same type
and contain the same values.

        trace({} == {});// output: false

That's why I think that when testing objects for equality, the simple
and the strict oprator will always return the same result.

--------------
Andreas Weber
motiondraw.com



-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Ian
Thomas
Sent: Montag, 23. Januar 2006 16:38
To: Flashcoders mailing list
Subject: Re: [Flashcoders] getting the name of an object


Andreas,
  Just sight-reading the code rather than testing it - shouldn't there
be a === or !== in there somewhere to make sure you're talking about
_exactly_ the same object rather than one which just has the same
value..?

Cheers,
   Ian

On 1/23/06, Andreas Weber <[EMAIL PROTECTED]> wrote:
>
> If you have a weakness for kludgy solutions, try the 'getObjNames' 
> function below.
> Otherwise: don't 'forget' the names of the objects: store the name in
the
> same object, as an additional property.
>
>
> // 'don't try this at home!'
>
> a = {someProp:'someValue'};
> b = {someProp:'someOtherValue'};
> c = a;
>
> arr = [a, b];
>
>
> // later, when we have 'forgotten' the names of the objects
>
> for(var i=0, len=arr.length; i<len; i++){
>         trace(getObjNames(arr[i]) + '   - someProp: '+
arr[i].someProp);
>
>         // Output:      c,a   - someProp: someValue
>         //                      b   - someProp: someOtherValue
>
> }
>
>
> // kludgy, poorly tested and a waste of processor cycles function 
> getObjNames(o:Object, timeline:MovieClip){
>         var names:Array;
>         var o2 = arguments[1] ? arguments[1] : _level0;
>         if(!names){names = []}
>         for(var p in o2){
>                 if(typeof(o2[p]) == 'object'){
>                         if(o2[p] != o){
>                                  getObjName(o, o2[p]);
>                         }else{
>                                 names.push(p);
>                         }
>                 }
>         }
>         return names;
> }
>


_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to