Bergervei/Javascript-OOP

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Javascript</language>
== Kapselung von Daten ==
<code id="575d0e9db9995">
function ClassName(param) {
 var wert = param;
 this.GetWert = function() {
  return wert;
 }
}
</code>

<run id="575d0e9db9bb4">
var Objekt = new ClassName(42);
Objekt.GetWert();
</run>

== Vererbung ==
<code id="575d0e9db9a14">
function SuperClass(param1, param2) {
 var a = param1;
 var b = param2;
 this.GetA = function() {
  return a;
 }
 this.GetB = function() {
  return b;
 }
}
</code>

<run id="575d0e9db9c1c">
var SuperObjekt = new SuperClass(1, 2, 3);
SuperObjekt.GetA();
</run>

<code id="575d0e9db9a7a">
function SubClass(param1, param2, param3) {
 SuperClass.call(this, param1, param2);
 var c = param3;
 this.GetC = function() {
  return c;
 }
}
</code>

<run id="575d0e9db9c7c">
var SubObjekt1 = new SubClass(1, 2, 3);
SubObjekt1.GetC();
</run>

== Überschreiben von Methoden ==
<code id="575d0e9db9adb">
function SubSubClass(param1, param2, param3) {
 SubClass.call(this, param1, param2, param3);
 var c = param1 + param2 + param3;
 this.GetC = function() {
  return c;
 }
}
</code>

<run id="575d0e9db9cdc">
var SubObjekt2 = new SubSubClass(1, 2, 3);
SubObjekt2.GetC();
</run>

== Polymorphie ==
<code id="575d0e9db9b3d">
function AbstractClass() {
 var a = 0;
 var b = 0;
 var c = 0;
 this.GetA = function() {
  return a;
 }
 this.GetB = function() {
  return b;
 }
 this.GetC = function() {
  return c;
 }
}

SuperClass.prototype = new AbstractClass();
SubClass.prototype = new AbstractClass();
SubSubClass.prototype = new AbstractClass();
</code>

<run id="575d0e9db9d3d">
var TestObjekt1 =  new SuperClass(1, 2);
var TestObjekt2 =  new SubClass(2, 3, 4);
var TestObjekt3 =  new SubSubClass(5, 6, 7);
TestObjekt1.GetC() + "\n" + TestObjekt2.GetC() + "\n" + TestObjekt3.GetC() + "\n" ;
</run>