anoniem Geplaatst: 11 maart 2002 Delen Geplaatst: 11 maart 2002 is het in jscript (5.0) mogelijk een basis klasse methode vanuit de 'overridende' methode aan te roepen, en zo ja, hoe? keyword super wordt iig niet herkend. bvd Quote Link naar reactie
anoniem Geplaatst: 11 maart 2002 Auteur Delen Geplaatst: 11 maart 2002 function baseClass() { this.method = function () { alert('base'); }; } function extendedClass() { baseClass.call(this) this.method = function () { extendedClass.prototype.method();//!!!!!! alert('extended'); }; } extendedClass.prototype = new baseClass(); class1 = new baseClass(); class2 = new extendedClass(); class1.method(); class2.method(); /Eelco Quote Link naar reactie
anoniem Geplaatst: 11 maart 2002 Auteur Delen Geplaatst: 11 maart 2002 indien ik op dergelijke manier m'n 'klassen' ga schrijven... ik had begrepen dat je een methode in javascript aan de prototype-property v/d 'klasse' moest toewijzen opdat niet iedere instantie met een eigen kopie v/d methode referentie geïnitialiseerd werd. (ooit ergens in de netscape documentatie gelezen) onderstaand een triviaal(!) voorbeeld. het gaat om de toString methode. uiteraard zijn er volop andere mogelijkheden om hier eea (zelfs netter) op te lossen maar toch... [code:1:7730bf56b6] function Exception(id, info, source) { this._id = id || 1; this._info = info || "unspecified"; this._source = source || "unspecified"; this._date = new Date(); if (this._Exception_prototyped) return; Exception.prototype._Exception_prototyped = true; Exception.prototype.setId = function(id) { this._id = id; } Exception.prototype.getId = function() { return this._id; } Exception.prototype.setInfo = function(info) { this._info = info; } Exception.prototype.getInfo = function() { return this._info; } Exception.prototype.setSource = function(source) { this._source = source; } Exception.prototype.getSource = function() { return this._source; } Exception.prototype.setDate = function(date) { this._date = date; } Exception.prototype.getDate = function() { return this._date; } Exception.prototype.toString = function() { var strval = ""; var i = 0; for (var p in this) if (typeof this[p] != "function") { if (i++) strval += ','; strval += p + '=' + this[p]; } return "Exception[" + strval + ']'; } } function DBException(id, info, source, state) { this._DBException_baseobj = Exception; this._DBException_baseobj(id, info, source); delete this._DBException_baseobj; this._state = state || "00000"; if (this._DBException_prototyped) return; DBException.prototype._DBException_prototyped = true; DBException.prototype.setSqlState = function(state) { this._state = state; } DBException.prototype.getSqlState = function() { return this._state; } DBException.prototype.toString = function() { return "DBException[" + ***.toString() + ",_state=" + this._state + ']'; } } DBException.prototype = new Exception; [/code:1:7730bf56b6] Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen