peterS.: javascript prototype

Beitrag lesen

hallo Tobias,

übrigens, das geht alles auch nicht:

wieso nicht?, oder genauer:
   in welchem zusammenhang "geht alles auch nicht"?

nehmen wir an

function con() {
     this.show_1 = function(text) {
       alert("show 1: "+text);
     };
   }

ist eine globale funktion, dann ...

... gilt fuer:

con.constructor.show_1 = function(text) {
   alert('foo');
};

alert(con.constructor == Function); // true!

Du erweiterst also das "Function"-objekt des javascript-
   sprachkerns um eine methode "show_1"; das ist voellig
   korrekt, und niemand kann Dir verbieten, dies nicht zu tun;

... gilt fuer:

window['con'].constructor.show_1 = function(text) {
   alert('foo');
};

"window['con']" sowie "con" als auch window.con" sind
   identisch, da "con" eine globale funktion ist;

daraus folgt:
   Du musst die zuletzt gemachte ausfuehrung nocheinmal lesen ;-)

... gilt fuer:

window['con'].show_1 = function(text) {
   alert('foo');
};

sowie fuer:

con.show_1 = function(text) {
   alert('foo');
};

"window['con']" sowie "con" als auch window.con" sind
   identisch, da "con" eine globale funktion ist;

Du erweiterst also das funktions-objekt "con" um eine
   eigenschaft "show_1"; auch dies ist voellig korrekt nur ...

... stellt sich in allen von Dir aufgefuehrten beispielen
   die frage:   warum tust Du das, was willst Du erreichen?

komischerweise wirft der browser auch keine error (moz)

klar:
   der verdaut ja nur, was Du in ihn hineinsteckst, und das
   war syntaktisch alles korrekt;

by(t)e by(t)e - peterS. - pseliger@gmx.net

--
br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)