Extraño... a mi en los dos alert me aparece 123:
Código Javascript
:
Ver original<script type="text/javascript">
var parseData = function(){
this.xml;
this.setXML = function(xmldom){
this.xml = xmldom;
alert(this.xml); // aqui devuelve el objeto xml normal
}
this.getXML = function(){
alert(this.xml); // aqui es undefined :/
return this.xml;
}
this.parseXML = function(){
alert(this.getXML); // aqui es undefined tambien :/
$(this.xml).find("Tutorial").each(function(){
$("#output").append($(this).attr("author") + "<br />");
});
}
}
function cargar() {
var obj = new parseData();
obj.setXML("123");
obj.getXML();
}
window.onload = cargar;
</script>
Ya que estas trabajando con pseudoclases (la POO en javascript no existe, es una ilución
![sonrisota](http://static.forosdelweb.com/fdwtheme/images/smilies/xD.png)
) deberías adjudicarle los métodos al prototype de la clase, de esta manera (según tengo entendido) se maneja de una manera más optima la memoria, al no tener que crear los mismos métodos cada vez que instancias un nuevo objeto.
Código Javascript
:
Ver original<script type="text/javascript">
var parseData = function(){
this.xml;
this.parseXML = function(){
alert(this.getXML); // aqui es undefined tambien :/
$(this.xml).find("Tutorial").each(function(){
$("#output").append($(this).attr("author") + "<br />");
});
}
}
parseData.prototype.setXML = function(xmldom){
this.xml = xmldom;
alert(this.xml); // aqui devuelve el objeto xml normal
}
parseData.prototype.getXML = function(){
alert(this.xml); // aqui es undefined :/
return this.xml;
}
function cargar() {
var obj = new parseData();
obj.setXML("123");
obj.getXML();
}
window.onload = cargar;
</script>
Si entiendo bien lo ultimo que leí de tu mensaje, lo que quieres es no tener que utilizar setXML() cada vez que creas un objeto. Pues asignalo directamente como "constructor":
Código Javascript
:
Ver original<script type="text/javascript">
var parseData = function(xmldom){
this.xml = xmldom;
this.setXML = function(xmldom){
this.xml = xmldom;
alert(this.xml); // aqui devuelve el objeto xml normal
}
this.getXML = function(){
alert(this.xml); // aqui es undefined :/
return this.xml;
}
this.parseXML = function(){
alert(this.getXML); // aqui es undefined tambien :/
$(this.xml).find("Tutorial").each(function(){
$("#output").append($(this).attr("author") + "<br />");
});
}
}
function cargar() {
var obj = new parseData("345");
obj.getXML();
obj.setXML("123");
obj.getXML();
}
window.onload = cargar;
</script>