molily: Sprachregelung

Beitrag lesen

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function

Warum ich die nicht mit for (i in Function) durchlaufen kann, kapiere ich grade nicht.

http://es5.github.io/ Suche nach [[Enumerable]]
http://es5.github.io/#x8.6.1

Testen mit:

$ Function.prototype.propertyIsEnumerable('bind')  
false  
  
$ Object.getOwnPropertyDescriptor(Function.prototype, 'bind')  
Object {value: function, writable: true, enumerable: false, configurable: true}  

Hier zeigt sich, dass die Eigenschaft nicht enumerable ist.

Test = function () {

this.a = "b";
}
MyTest = new Test();
console.log(typeof  Test); //function
console.log(typeof  MyTest); //object

  
Was daran liegt, dass der typeof-Operator ziemlich kaputt ist. Das sagt nicht aus, dass Funktionen keine Objekte sind… typeof gibt immer 'object' zurück, wenn es sich nicht um einen Primitive, eine Funktion oder undefined handelt.  
  

> ~~~javascript

Test = function () {  

>     this.a = "b";  
> }  
> Test.b = "c";  
> MyTest = new Test();  
> console.log(MyTest.b); // undefined  
> console.log(Test.b); // c  
> 

MyTest erbt natürlich nicht Eigenschaften ihres Konstruktors (Test), sondern nur die ihres Prototyps (Test.prototype).

var instanz = new Konstruktor();  
// Eigene oder prototypisch vererbte Eigenschaft:  
console.log(instanz.eigenschaft);  
// Eigenschaft des Konstruktors, dasselbe wie Konstruktor.eigenschaft:  
console.log(instanz.constructor.eigenschaft);

Aber was "habe" ich davon, dass meine Funktion Test noch die Eigenschaft b mit sich bringt, also fürs praktische Programmieren?

Solche »statischen Klassenmethoden« nutzt man in Javascript genauso wie in anderen Sprachen.

var User = function(attributes) {};  
User.from = function (json) {  
  var obj = JSON.parse(json);  
  return new User(obj);  
};

Oder um Konstanten unterzubringen:

User.USER_ROLE = 0;  
User.MODERATOR_ROLE = 1;  
User.ADMIN_ROLE = 2;

(aus den Fingern gesaugt)

Mathias

0 64

Variable übergeben von einer Funktion in eine andere Funktion

chris1234
  • javascript
  1. 0
    tami
    1. 0
      Martin R.
      1. 0
        tami
        1. 0
          Martin R.
          1. 0
            molily
            1. 0
              Martin R.
  2. 0

    Funktionsparameter

    molily
  3. 0
    Tom
    1. 0
      chris1234
  4. 0
    hotti
    1. 0

      Sprachregelung

      Tom
      1. 0
        tami
        1. 0
          tinita
          1. 0
            tami
            1. 0
              tami
              1. 0
                unknown
                1. 0
                  tami
                  1. 0
                    unknown
                    1. 0
                      tami
                      1. 0
                        unknown
                        1. 0
                          tami
                          1. 0
                            unknown
                            1. 0
                              tami
                              1. 0
                                unknown
                                1. 0
                                  tami
                          2. 0
                            molily
                            1. 0
                              tami
                              1. 0
                                molily
                                1. 0
                                  tami
                                  1. 1
                                    1UnitedPower
                                    1. 0

                                      Sprachregelung - "new" in JS

                                      tami
                                      1. 0
                                        tami
                                        1. 2

                                          Von ewigen Zitaten und lieblos eingeworfenen Links

                                          1UnitedPower
                                          • zu diesem forum
                                          1. 0
                                            1UnitedPower
                                            1. 0
                                              Tom
                                              1. 0
                                                1UnitedPower
                                              2. 0

                                                verlieren und vergessen wie in echt

                                                Auge
                                              3. 0
                                                Matthias Apsel
                                              4. 0
                                                Christian Kruse
                                                1. 0
                                                  Tom
                                                  1. 0
                                                    Christian Kruse
                                                  2. 0
                                                    tami
                                            2. 0
                                              tami
                                            3. 0
                                              tami
                                          2. 0
                                            tami
                                      2. 0
                                        1UnitedPower
                                        1. 0
                                          tami
                                  2. 0
                                    molily
                                    1. 0
                                      tami
                                    2. 0
                                      tami
                                    3. 0
                                      tami
                                      1. 0
                                        tami
                                        1. 0
                                          molily
                                          1. 0
                                            tami
                                            1. 0
                                              molily
                                        2. 0

                                          Sprachregelung - Fehler im Beispielcode

                                          tami
      2. 0
        molily
        1. 0
          Tom
          1. 0
            molily
        2. 0
          tami
          1. 0
            molily
          2. 1
            molily
            1. 0
              tami