On Dec 11, 5:14 pm, "Calm_Pear" <sorry...@dirtymail.comwrote:
Quote:
Hi all,
>
I have created an object with a default function; the default function
That statement is a bit confused. You have indeed created an object
(a function object.) It has no "default function", but does have two
inner functions, one of which will apparently be used as a
constructor. I suspect you want to use the outer "myobject" function
as a constructor, but it is hard to see why.
Quote:
exposes a public function as well.
>
myobject = function(){
var objects = [];
function addLoad(func){var oldonload = window.onload;if(typeof
window.onload != 'function'){window.onload = func;}else{window.onload =
function(){if(oldonload){oldonload();}func();}}}
function object(div){
/* some code here */
}
return function(div){
addLoad(function(){objects.push(new object(div))});
myobject.test = function(txt){alert(txt);};
}}();
>
object("mytextbox");
>
How would I reference the object itself in such a way that I do not have to
use the object name?
>
Meaning; I'd like to get rid of:
>
myobject.test = function(txt){alert(txt);};
>
And have it read something like:
>
this.test = function(txt){alert(txt);};
Call it as a constructor, but the results won't be particularly
useful.
myStrangeObject = new object("mytextbox");
BTW, constructors should have capitalized names. Unfortunately,
"Object" is taken.
Quote:
(but that will add the function to the window object which is something I do
not want)
>
Or
>
var that = this;
>
that.test = function(txt){alert(txt);};
>
(but that doesn't work also...)
The result is the same as with your previous attempt (a "test"
property is added to the global object.)
Quote:
>
My guess is you can't because the object is being created as the page loads
Your theory has no basis in fact.
Quote:
and there is no way to get its name until it's finished creating. (I don't
like to add the function(s) with prototype because the function should
operate as a singleton anyway and it... well... just looks wrong I guess)
You need to stop guessing. You should learn how objects work in
JavaScript before trying to create them. This example seems too
complex for a first attempt.