3 Stimmen

Wie erstellt das Javascript ein Objekt?

function Person(name) {
    this.name = name;
    this.say = function() {
        console.info('I am ' + this.name);
    }
}
var p=new Person('stackoverflow');

Kann mir jemand sagen, dass die oben genannten Codes gleichbedeutend sind mit :

function Person(name) {
    this.name = name;
    this.say = function() {
        console.info('I am ' + this.name);
    }
}

var p={};
Person.call(p,'stackoverflow');

Ist das wahr?

Wenn ja, wie sieht es mit dem Prototyp aus?

Jedes Objekt in Javascripte besitzt einen Prototyp, und die Prototyp-Kette hält die Beziehung zwischen den Objekten, ich frage mich, ob dieser Prototyp etwas tut oder nicht.

Wenn in diesem Beispiel das Objekt "p" erstellt wird, ruft es dann eine eingebaute Methode der Oberklasse von Person auf?

Was ich übrigens wissen möchte, ist, was die Syntax var p=new Person('stackoverflow'); tun?


-----------------update------------------

function Person(name) {
    this.name = name;
}
Person.prototype.say = function() {
    console.info('I am ' + this.name);
}

Wie wäre es, wenn ich die Definition von "say" in die Personenfunktion einfüge?

function Person(name) {
    this.name = name;
    Person.prototype.say = function() {
        console.info('I am ' + this.name);
    }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X