Ich lerne und versuche JavaScript Objekte tief zu verstehen. Ich habe Object prototype
über das Beispiel unten gelernt.Warum das Hinzufügen einer Methode zur Funktion direkt nicht wie function.prototype funktioniert?
var MyObj = function(){
this.Name = "Stackoverflow";
}
MyObj.prototype.prop = "OK";
var instance = new MyObj();
instance.prop = "OK";
console.log(instance.hasOwnProperty("Name")); //true
console.log(Object.getOwnPropertyNames(instance)); //[ 'Name', 'prop' ]
In dem obigen Beispiel kann instance
Objekt zugreifen nicht getOwnPropertyNames
von Object
. Weil getOwnPropertyNames
Funktion kein Mitglied des Prototyps Object
ist. Wenn ich danach mein eigenes Objekt wie z. B. Object
oben schreibe, z.
var MyDream = function(){}
MyDream.prototype.canAccessThisMethod = function(x){};
var instanceSample = new MyDream();
instanceSample.canAccessThisMethod("blabla"); //because of prototype
MyDream.method(blabla); // didn't work.
Wie zu machen MyDream.method
arbeiten in diesem Beispiel?
Willkommen bei StackOverflow. Zuallererst ein paar Dinge, Sie wollen 'Prototypen' lernen, was gut ist, trotzdem hat es nichts damit zu tun, der' Funktion' hier eine Methode hinzuzufügen. Aber Sie werden diese Dinge auf dem Weg umgehen. – Rohit416
Hier ist ein [nettes Tutorial über JavaScript-Prototypen.] (Https://www.pluralsight.com/blog/software-development/understanding-javascript-prototypes) – Rohit416