toString funktioniert nicht im IE

Habe ich eine Klasse in javascript definieren, die die toString-Methode,jedoch wenn ich drucken möchte, ihn in der Seite,es ist immer drucken [object object] im IE(6-8).

Aber es funktioniert im firefox oder chrome(alle drucken 'kk' im Beispiel unten).

Ich Frage mich, warum?

Dies ist der Beispiel-code:

function Person(name){
  this.name=name;
}
Person.prototype.toString=function(){
  return this.name;
}
var p=new Person('kk');
document.getElementById('dis').innerHTML=p.toString();

Was ist das problem?


BTW,dies ist der code in meiner Anwendung:

function inherit(pro) {
    function F() {};
    F.prototype = pro;
    return new F();
}
var Class = function() {
    var clazz = null,
    pros = {}; //root of chain
    for (var i = 0; i < arguments.length; i++) {
        var arg = arguments[i];

        if (typeof arg === "function") {
            arg = arg.prototype;
        } else {
            if (arg.init) {
                clazz = arg.init;
                delete arg.init;
            }
            var o = arg;
            arg = (function() {
                function F() {};
                F.prototype = pros;
                return new F;
            })();
            for (var key in o) arg[key] = o[key];
        }

        pros = arg;
    }

    clazz.prototype = pros;
    return clazz;
};

var Person = Class({
    init: function(name) {
        this.name = name;
    },
    toString: function() {
        return this.name;
    }
});

function init() {
    var p = new Person('kk');
    document.getElementById('dis').innerHTML = p.toString();
}
window.onload = init;

Screenshot:

toString funktioniert nicht im IE

toString funktioniert nicht im IE

  • Was meinst du mit it works? Was tut es in FF und Chrome?
  • Die Letzte Zeile in Ihrem code, wo es heißt window.onload = init(); ist nicht korrekt/nicht, was Sie erwarten, es zu tun. Dies würde die Ausführung der init Funktion sofort, nicht wenn das Fenster laden. Entfernen der () Klammern richtig wäre.
  • Gut,aber das Ergebnis nicht ändern.
  • Habe gerade versucht das Letzte Stück code. Es funktioniert im IE9, aber es zeigt [object object] in IEtester für den IE8 und unter obwohl. Die Beurteilung durch die screenshot-ich glaube, er ist mit IE8.
InformationsquelleAutor hguser | 2012-02-27
Schreibe einen Kommentar