javascript-Funktionen sind Objekte?

Kämpfe ich mit einer Javascript Frage für einige Zeit jetzt, und ich war nicht in der Lage, eine Erklärung zu finden, die auf das web. Ich denke, es ist weil ich nicht den richtigen keywords, die möglicherweise auch damit zusammenhängen, warum ich kämpfen bin mit diesem überhaupt.

Meine Grundannahme ist, dass es möglich ist, zu verändern, Objekte:

> var x = {'n': 2};
> x['n']
2
> x['n'] = 3;
3

pheww, arbeitete. Aber noch sind (die Funktionen sind Objekte, zu):

> var addn = function(a) {
    var n = 2;
    return n + a;
}

> addn(3);
5
> addn['n'] = 3;
3
> addn(3);
5

Dieser Zeit war ich nicht in der Lage zu ändern 'n'. Gibt es eine Möglichkeit dieses Problem zu beheben, während die funktionale Geschmack? Im Gegensatz zum gehen voll OO. Eine Verwandte Frage, die ich habe, wäre, wie zu pflegen Abhängigkeiten von Funktionen zum Zweck der zum Beispiel Test - wieder w/o gehen OO? Der Ursache bin ich auf der Suche nach einer Lösung, aber wenn möglich würde ich auch gerne verstehen, nach welchem Mechanismus in Javascript macht mich kämpfen.

Cheers,

Mark

Haftungsausschluss:
Durch die Erwähnung OO ich weiß nicht Vorsatz kann man nichts gegen sagen OO. Und ich habe nicht die Absicht, etwas zu sagen, gegen VI oder Emacs entweder. Wenn ich irgendwie deine Gefühle verletzt überspringen Sie bitte diese ein.

  • Sie konnte immer passieren in n als parameter, aber ich nehme an, dass ist nicht, was Sie Fragen.
  • Was meinst du mit "dieses mal war ich nicht in der Lage zu ändern 'n'"? Tut addn['n'] zurück 3?
  • Im Hinblick auf Ihr OO Bemerkungen: Sie versuchen, neu zu erfinden OO, die schon mehr als genug getan, auch in JavaScript. 😉
  • wow, danke an Euch alle! Ich bin absolut beeindruckt, innerhalb von weniger als einer Stunde haben wir die komplette Diskussion zu dem Thema. Das ist wirklich hilfreich. Genial!
InformationsquelleAutor mark | 2011-03-01
Schreibe einen Kommentar