コンストラクター、コンストラクター、私たちは皆、この名前に精通しています。コンストラクターは常に、現在のオブジェクトを作成するコンストラクターを指しています。
ここで注意すべきことの1つは、各関数にプロトタイププロパティがあり、このプロトタイプのコンストラクターがこの関数を指していることです。この時点で、この機能のプロトタイプを変更すると、事故が発生しました。のように
function person(name、age){this.name = name; this.age = age;} person.prototype.getage = function(){return this.age;} person.prototype.getName = function(){return this.name;} var p = new person( "nicholas"、18); console.log(p.constuctor); // person(name、age)console.log(p.getage()); //18Console.log(p.getname()); //ニコラスもしそうなら:
function person(name、age){this.name = name; this.age = age;} person.prototype = {getname:function(){return this.name; }、getage:function(){return this.age; }} var p = new person( "nicholas"、18); console.log(p.constructor); // object()console.log(p.getage()); //18Console.log(p.getname()); //ニコラスその結果、コンストラクターが変更されました。
その理由は、プロトタイプ自体もオブジェクトであり、上記のコードは
person.prototype = new Object({getName:function(){return this.name;}、getage:function(){return this.age;}});コンストラクターは常に現在のオブジェクトを作成するコンストラクターを指しているため、上記のコードP.コンストラクターがオブジェクトを出力することを理解することは難しくありません。
プロトタイプを変更した後、コンストラクターが人を指すことを望んでいる場合はどうすればよいですか?シンプルで、person.prototype.constructorに値を割り当てるだけです。
person.prototype = {constructor:person、getname:function(){return this.name; }、getage:function(){return this.age; }}JavaScriptのコンストラクターに関する上記の簡単な議論は、私があなたと共有するすべてのコンテンツです。私はそれがあなたに参照を与えることができることを願っています、そしてあなたがwulin.comをもっとサポートできることを願っています。