peterS.: einfache objekte/namensraeume und singleton-konstrukte

Beitrag lesen

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:]
0 45

Interne public static member nicht aufrufbar

felix12
  • javascript
  1. 0
    Cheatah
    1. 0
      felix12
      1. 0
        Cheatah
        1. 0
          felix12
          1. 0
            MudGuard
            1. 0
              felix12
              1. 0
                Struppi
                1. 0
                  Patrick Andrieu
                  1. 1
                    peterS.
                    1. 0
                      Patrick Andrieu
                    2. 0
                      felix12
                2. 1

                  *private static* durch umschliessende anonyme *function stacks*

                  peterS.
                  1. 0
                    felix12
                    1. 0
                      Struppi
                      1. 0
                        felix12
                        1. 2

                          klassenlose vollwertige und flexible oo auf funktionaler basis

                          peterS.
                          1. 0
                            felix12
                            1. 0
                              felix 12
                            2. 0
                              Struppi
                              1. 0
                                felix12
                            3. 1

                              vererbung / delegationsprinzipien

                              peterS.
                              1. 0
                                felixcat
                                1. 1

                                  »[Function].arguments.callee« versus »arguments.callee«

                                  peterS.
                                  1. 0
                                    felix12
      2. 0
        Kai345
        1. 0
          felix12
          1. 0
            ChrisB
            1. 0
              felix12
              1. 0
                Struppi
                1. 0
                  felix12
                  1. 0
                    Struppi
                    1. 0
                      felix12
                      1. 0
                        Struppi
                      2. 1

                        einfache objekte/namensraeume und singleton-konstrukte

                        peterS.
                        1. 0
                          Struppi
              2. 2
                Timo "God's Boss" Reitz
                1. 0
                  felix12
                  1. 0
                    Kai345
                    1. 0
                      felix12
                      1. 0
                        Kai345
                        1. 0
                          Kai345
                          1. 0
                            felix12
                            1. 0
                              Kai345
  2. 4
    molily