gruss Struppi, hallo felix12,
Wenn du die Javascript eigene funktion "Math" benutzt, ...
@felix12:
[Math] ist in JavaScript einfach nur ein objekt
... bildest du ja auch vorher keine instanz ...
richtig.
sonder sagst ganz einfach z.B. "Math.pow",
weil "pow" eine statische funktion ist!
waere [Math] als singleton (als einzige instanz seiner klasse)
umgesetzt, koennte man dass mit der » ... statische funktion«
so stehen lassen.
Ich weiß nicht warum das dein Beispiel erklären soll:
»»
Wenn ich Math nachbauen sollte, würde das in etwa so aussehen:~~~javascript
var myMath = new function() {
this.pow = function(a,b) { var x = a;while(--b) x *= a; return x;}
};
>
> D.h. natürlich bilde ich eine Instanz.
@Struppi
in JavaScript gibt es mehrere moeglichkeiten, \*echte\* singletons
zu erzeugen. Dein konstrukt schrammt knapp dran vorbei, denn ueber
`var justAnotherMath = new myMath.constructor();`{:.language-javascript}
liesse sich auf einfache art eine weitere instanz erzeugen.
um dies zu verhindern sollte man die referenz auf den konstruktor
beim intanziieren ueberschreiben lassen:
~~~javascript
var myMath = new (function() {
this.constructor = Object;/*
code */
})();
so long - peterS. - pseliger@gmx.net
--
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - Douglas Crockford
ie:( fl:) br:> va:( ls:& fo:) rl:) n3;} n4:} ss:} de:µ js:} mo:? zu:]
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - Douglas Crockford
ie:( fl:) br:> va:( ls:& fo:) rl:) n3;} n4:} ss:} de:µ js:} mo:? zu:]