Eigene Objekte definieren
Niels
- javascript
Hallo, durch was kann man this ersetzen wenn man eine vollständige Angabe machen möchte?
Ist es bgcolor.R oder so?
Gruss, Niels.
<html><head><title>Test</title>
<script type="text/javascript">
function Farbe (R, G, B) {
this.R = R;
this.G = G;
this.B = B;
this.hex = "#";
}
function HintergrundWechseln () {
var Hintergrund = new Farbe("E0", "FF", "E0");
document.bgColor = Hintergrund.hex + Hintergrund.R + Hintergrund.G + Hintergrund.B;
}
</script>
</head><body bgcolor="#FFFFFF">
<h1>Das eigene Farb-Objekt mit JavaScript</h1>
<a href="javascript:HintergrundWechseln()">Hintergrundfarbe wechseln</a>
</body>
</html>
[latex]Mae govannen![/latex]
Hallo, durch was kann man this ersetzen wenn man eine vollständige Angabe machen möchte?
> <script type="text/javascript">
> function Farbe (R, G, B) {
> this.R = R;
> this.G = G;
> this.B = B;
> this.hex = "#";
> }
> function HintergrundWechseln () {
> var Hintergrund = new Farbe("E0", "FF", "E0");
> document.bgColor = Hintergrund.hex + Hintergrund.R + Hintergrund.G + Hintergrund.B;
> }
> </script>
Man kann »this« bei _dieser_ Vorgehensweise nicht ersetzen, ansonsten ist es nicht möglich, mehrere Instanzen zu erzeugen, ohne daß die Werte überschrieben werden. »this« bezieht sich innerhalb des Konstruktors »Farbe« jeweisl auf das gerade mit new Farbe() erzeugte Objekt.
Es ist allerdings möglich, ein anderes Konzept zu nutzen (bspw. via Object.create)
Die Haupt-Frage ist allerdings: Warum willst du hier »this« ersetzen? Ich sehe darin keinen Sinn.
Ric.. äh, Kai
var jQuery = $(hit);
Hallo, durch was kann man this ersetzen wenn man eine vollständige Angabe machen möchte?
Meinst Du new Farbe("E0FFE0")
?
Dann muss man die Definition ändern.
function Farbe (RGB) {
this.RGB = RGB;
this.hex = "#";
}
und dann
document.bgColor = Hintergrund.hex + Hintergrund.RGB;
Ist es bgcolor.R oder so?
bgColor ist kein von Dir definiertes Objekt. Also gibt es keine Eigenschaft R.
Cheers,
Baba
ach so, hab verstanden, danke Dir Kai.