Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie nennt man das?
function meinObjekt ()
{
this.bla = 'laber';
this.doSomething = function ()
{
this.blubb = 'blubber';
this.doSomethingElse = function()
{
alert (this.bla);
}
this.doSomethingElse();
}
}
Mir geht es speziell um this.blubb = 'blubber'; und this.doSomethingElse = function(). Wie zum Teufel nennt man das?
Peter
this.blubb ist eine Eigenschaft. function() {} ist eine anonyme Funktion. Oder versteh ich dich falsch?
Mir geht es speziell um this.blubb = 'blubber'; und this.doSomethingElse = function(). Wie zum Teufel nennt man das?
Ersteres ist in JavaScripts OO-Modell das Schema, um Attribute/Eigenschaften als public zu deklarieren, und letzteres eine Methode als privileged.
Siehe auch Private Members in JavaScript (http://www.crockford.com/javascript/private.html)
Erst mal danke für die Antworten. Ich glaube, ich habe mich missverständlich ausgedrückt. Es geht hier nich tum die Sichtbarkeitsstufen. Es könnte auch so aussehen:
function meinObjekt ()
{
function doSomething ()
{
var blubb = 'blubber';
function doSomethingElse ()
{
}
}
}
ich habe ja ein Objekt meinObjekt. Darin befindet sich eine Methode doSomething. Und die beinhaltet wiederum eine Eigenschaft und Methode. Mir geht es um die Bezeichnung dieser Verschachtelung. Methodenmethode? Methodeneigenschaft?
Peter
AmicaNoctis 23-02-2010, 11:33 Hallo Peter,
meinObjekt ist kein Objekt, sondern ein Konstruktor, um ein Objekt zu erzeugen. Man könnte es also auch Klasse nennen. Da jetzt allerdings kein this mehr drin vorkommt und ich nicht weiß, ob du es jemals mit new aufrufst, würde ich sogar sagen, das es nur ein Closure ist.
Kannst du vielleicht den Kontext dieses Konstrukts näher erläutern? Es kann halt vieles sein, dafür müsste man aber auch wissen, wie du es einsetzt.
Gruß,
Amica
meinObjekt ist kein Objekt, sondern ein Konstruktor,
Stimmt, vergesse ich immer wieder.
Kannst du vielleicht den Kontext dieses Konstrukts näher erläutern? Es kann halt vieles sein, dafür müsste man aber auch wissen, wie du es einsetzt.
Ich habe das noch in keinem Kontext eingesetzt. Hab einfach mal damit herumgespielt und es funktionierte. Ist ja bei Literalen auch möglich.
würde ich sogar sagen, das es nur ein Closure ist.
Könnte sein. :dontknow:
Peter
AmicaNoctis 23-02-2010, 11:53 Ohne Kontext ist es einfach nur eine Funktion, wie auch ein Apfel nur ein Apfel ist. In einem konkreten Kontext, kann man es evtl. dann auch anders sehen, so wie der Apfel im Kontext von Newton, Wilhelm Tell oder Adam und Eva jeweils noch einen zusätzlichen symbolischen Charakter erhält.
Dann gebe ich mich mit der Antwort mal zufrieden.
Danke
Peter
function bla()
{
function blubb()
{
..
}
blubb = function ()
{
...
}
var blubb = function()
{
...
}
}
Kann mir mal einer den Unterschied der einzelnen Methodendeklarationen von blubb erklären? Haben die was mit den Closures zu tun? Lese mich gerade in das Thema ein und hab noch ein paar Verständnisprobleme.
Peter
AmicaNoctis 23-02-2010, 20:42 Hallo Peter,
die erste und dritte Definition sind äquivalent. Die zweite erzeugt ein Autoglobal. Ohne var werden Eigenschaften dem window-Objekt hinzugefügt. Das passiert bei der zweiten, die anderen beiden sind nur innerhalb der äußeren Funktion (bla) gültig.
Gruß,
Amica
Danke, Schatzi :). Wenn ich dich nicht hätte.
Peter
PS: Irgendwann muss ich dich mal kennenlernen!
AmicaNoctis 23-02-2010, 20:48 Gern geschehen, lieber Peter. Du hättest mich und mein Schatzi ja am Samstag kennenlernen können, aber du wolltest ja nicht ;)
Gern geschehen, lieber Peter. Du hättest mich und mein Schatzi ja am Samstag kennenlernen können, aber du wolltest ja nicht ;)
Berlin ist weit, ich bin alt und mein Babysitter unset konnte auch nicht.
Peter
|
|