"type" is used in Javascript, so consider it a reserved word. I know you can override some reserved words, but that's asking for trouble.
Also, you're treeinfo function is slightly wrong. It is a member function of a tree, but makes reference to an object it doesn't know about (my_forest). Replace "my_forest" inside the treeinfo function with "this". But even then this will have problems. The Tree class doesn't define a "type" property. I would rework your classes a little to put the TreeInfo function as a member function on the Forest class, and pass in the Tree instance you want the information from. Of course, there are other ways to do this, and I realize this is only sample code - your real code may not be doing this.... As for your questions, yes the this.trees[i] in your MakeTrees function does point to your forest object. This is because the MakeTrees function is a member function (or method) of the Forest class. If you call MakeTrees directly (i.e. x = MakeTrees(), not x=my_forest.MakeTrees() ), then "this" refers to the function itself (if I remember right), and you'll have problems. So, your forest class can have tree objects in it. The tree class and it's methods can also make reference to "this", but at that point, "this" is refering to the tree object. Oh, one last thing. In your Forest function, the line "trees = new Array();" should read "this.trees = new Array();". If you don't make this change, the trees variable will loose scope when the function is done. Not really a well laid out response, but I hope it points you in the right direction. I'm "very" familiar with JS classes, so feel free to email me off list if you need any other tips/help. Shawn -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Nick W Sent: Tuesday, March 02, 2004 4:14 PM To: CLUG General Subject: [clug-talk] OT - Javascript frustration Sorry for the OT post but this makes no sense and every source I read tells me this should work. I have a stupid problem with a script Im writing. I have an object which contains an array of objects, which contain image objects. I set the onmouseover property of the images to run a function which needs data from one of the outermost object's properties. The said function can see the object, but not its properties. OK thats clear as mud, let me try a simplified example... <begin lame example> function Forest() { this.type = 'rainforest'; trees = new Array(); this.MakeTrees = MakeTrees; } function MakeTrees() { for(i = 0; i < 1000; i++)//make 1000 trees { this.trees[i] = new Tree(); } } function Tree() { this.img = new Image(); //pretend I set the this.img properties here... this.img.onmouseover = TreeInfo; } function TreeInfo() { alert(typeof(my_forest)); alert('This tree is in a ' + my_forest.type); } my_forest = new Forest(); my_forest.MakeTrees(); <end lame example> When you mouseover a tree, the first alert in TreeInfo() will tell you my_forest is an object, but the 2nd one will spit out "This tree is in a undefined". Why?? Note, the above code was written very quickly and is probably unuseable, but it serves its purpose as a lame example. Its obviously some sort of scope issue with Java I dont get. AFAIK, my_forest should be global in this case. My other question is in MakeTrees() does the 'this' in 'this.trees[i]' point to my_forest? Of course the whole thing could be FUBAR.... tks. -- Nick W (nickw77 at shaw.ca) Registered Linux User #324288 (http://counter.li.org) MSN Messenger: [EMAIL PROTECTED] Yahoo: foolish_gambit ICQ: 303276221 It's not our fault, we're outnumbered by stupid people ten to one. _______________________________________________ clug-talk mailing list [EMAIL PROTECTED] http://clug.ca/mailman/listinfo/clug-talk_clug.ca _______________________________________________ clug-talk mailing list [EMAIL PROTECTED] http://clug.ca/mailman/listinfo/clug-talk_clug.ca

