Creacion de la clase:
Código javascript:
Ver original
var clientInfo = function() { //... };
Instanciacion de la clase:
Código javascript:
Ver original
var a = new clientInfo();
Variables publicas:
Código javascript:
Ver original
this.publicVar;
Variables privadas:
Código javascript:
Ver original
this.publicVar;
Metodos publicos:
Código javascript:
Ver original
clientInfo.prototype.getClientInfo = function() { ... }
Metodos privados:
Código javascript:
Ver original
var privateMethod = function(t) { ... };
t será el objeto this, en este caso el propio objeto para que podamos llamar a metodos/variables publicas para poder trabajar con ellos.
llamada a funcion publica desde la propia clase:
Código javascript:
Ver original
this.getClientInfo();
llamada a funcion publica desde un metodo privado de la clase:
Código javascript:
Ver original
var privateMethod = function(t) { t.getClientInfo(); };
llamada a funcion privada desde dentro de la clase:
Código javascript:
Ver original
var privateVar = privateMethod(this);
llamada a funcion publica desde fuera de la clase:
Código javascript:
Ver original
var a = new clientInfo(); a.getClientInfo();
Pero mejor lo vemos con un ejemplo:
Ejemplo corto:
Código javascript:
Ver original
var clientInfo = function() { clientInfo.prototype.getClientInfo = function() { var a = new Array(); a['browser'] = this.getBrowser(); return a; } clientInfo.prototype.getBrowser = function() { var a = 'default'; if(/Opera/.test(navigator.appName)) a = 'opera'; else if(/Microsoft Internet Explorer/.test(navigator.appName)) a = 'msie'; return a; } clientInfo.prototype.main = function() { var a = this.getClientInfo(); return a; } var privateMethod = function(t) { var a = new Array(); a['browser'] = t.getBrowser(); return a; }; var privateVar = privateMethod(this); alert("Private info: "+privateVar['browser']); this.publicVar = this.main(); }; var a = new clientInfo(); alert("Public info: "+a.publicVar['browser']);
Ejemplo largo:
Código javascript:
Ver original
var clientInfo = function() { clientInfo.prototype.getClientInfo = function() { var a = new Array(); a['browser'] = this.getBrowser(); a['motor'] = this.getMotor(); a['so'] = this.getSO(); return a; } clientInfo.prototype.getBrowser = function() { var a = 'default'; if(/Opera/.test(navigator.appName)) a = 'opera'; else if(/Microsoft Internet Explorer/.test(navigator.appName)) a = 'msie'; else if(/Iron/.test(navigator.appVersion)) a = 'iron'; else if(/Chrome/.test(navigator.appVersion)) a = 'chrome'; else if(/Konqueror/.test(navigator.appVersion)) a = 'konqueror'; else if(/Safari/.test(navigator.appVersion)) a = 'safari'; else if(/Firefox/.test(navigator.userAgent)) a = 'firefox'; else if(/Iceweasel/.test(navigator.userAgent)) a = 'iceweasel'; return a; } clientInfo.prototype.getMotor = function() { var a = 'default'; if(/Opera/.test(navigator.appName)) a = 'opera'; else if(/Microsoft Internet Explorer/.test(navigator.appName)) a = 'msie'; else if(/WebKit/.test(navigator.userAgent)) a = 'webkit'; else if(/KHTML/.test(navigator.userAgent)) a = 'khtml'; else if(/Gecko/.test(navigator.userAgent)) a = 'gecko'; return a; } clientInfo.prototype.getSO = function() { var a = 'default'; if(/Windows/.test(navigator.userAgent)) a = 'windows'; else if(/Linux/.test(navigator.userAgent)) a = 'linux'; return a; } clientInfo.prototype.main = function() { var a = this.getClientInfo(); return a; } var privateMethod = function(t) { var a = new Array(); a['browser'] = t.getBrowser(); a['motor'] = t.getMotor(); a['so'] = t.getSO(); return a; }; var privateVar = privateMethod(this); alert("Private info: "+privateVar['browser']+" "+privateVar['motor']+" "+privateVar['so']); this.publicVar = this.main(); }; var a = new clientInfo(); alert("Public info: "+a.publicVar['browser']+" "+a.publicVar['motor']+" "+a.publicVar['so']);
espero vuestros comentarios y sugerencias, muchas gracias, eskerrik asko.