3dsMax | 3D-Contest
Hi,
da bin ich wieder
Bin gerad dabei meinen Code aufzuräumen, und möchte dazu Klassen-ähnliche Objekte erstellen. Hier mal ein Beispiel:
Wenn ich das jetzt richtig verstanden hab, stellt man mit this vars und functions quasi auf public. Das klappt soweit auch ganz gut. Das Problem ist jetzt, dass ich innerhalb der "Klasse" nicht an diese variablen rankomme. Was ich mit den Funktionen in etwa so hinbekomme:
So kann ich die Funktion innerhalb und außerhalb verwenden. Bei einfachen Variablen stehe ich etwas auf dem Schlauch. Ich hab habs mal mit ner normalen Variable und nem Getter probiert.
Ich bekomme den Getter aber nicht vom object getrennt.
Ich könnte auch ne einfache Funktion benutzen:
Beide Lösungen finde ich ziemlich häßlich, auch denke ich, dass ich da ein kleines Verständnisproblem mit JS hab.
Ich hoffe ihr könnt mir weiterhelfen
mfg keule
edit: das lässt mir keine Ruhe, neuer Versuch:
Hab so jetzt meine private var und von draußen siehts ganz okay aus, aber innen total pfui, ne getter gibt ne function zurück welche wieder eine Variable ausgibt.... das ist furchtbar ........HIIIILFE
da bin ich wieder
Bin gerad dabei meinen Code aufzuräumen, und möchte dazu Klassen-ähnliche Objekte erstellen. Hier mal ein Beispiel:
Javascript:
function MyClass()
{
this.myNumber = 42;
function constructor()
{
console.log(this.myNumber) //undefined
}
constructor();
}
var myObject = new MyClass();
console.log(myObject.myNumber); //42
Javascript:
function MyClass()
{
....
this.public = private;
function private()
{
....
}
}
Javascript:
function MyClass()
{
var myNumber = 42;
function constructor()
{
console.log(myNumber) //42
}
this.public = { get myNum() { return myNumber } };
constructor();
}
var myObject = new MyClass();
console.log(myObject.public.myNum);//42
Ich könnte auch ne einfache Funktion benutzen:
Javascript:
function MyClass()
{
var myNumber = 42;
function constructor()
{
console.log(myNumber) //42
}
this.getMyNumber = function () { return myNumber };
constructor();
}
var myObject = new MyClass();
console.log(myObject.getMyNumber());//42
Ich hoffe ihr könnt mir weiterhelfen
mfg keule
edit: das lässt mir keine Ruhe, neuer Versuch:
Javascript:
function MyClass()
{
var _myNumber = 42;
function constructor()
{
console.log(_myNumber) //42
}
this.getMyNumber = function () { return _myNumber }
constructor();
}
MyClass.prototype = {
get myNumber() { return this.getMyNumber(); } }
var myObject = new MyClass();
console.log(myObject.myNumber);//42
Zuletzt bearbeitet: