ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript のコンストラクターの詳細な分析
コンストラクター プロパティは、このオブジェクトを作成した配列関数への参照を返します。この記事では JavaScript のコンストラクターを紹介します。必要な方は参考にしてください。
定義と使用法
コンストラクター プロパティは、このオブジェクトを作成した配列関数への参照を返します。
構文
object.constructor
コンストラクター、コンストラクター、この名前はよく知られています、コンストラクターは常にポインターです現在のオブジェクトを作成したコンストラクターに送信されます。
ここで注意すべき点は、各関数にはプロトタイプ属性があり、このプロトタイプのコンストラクターはこの関数を指しているということです。このとき、この関数のプロトタイプを修正したときに事故が発生しました。 。
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.constructor); //Person(name, age) console.log(p.getAge()); //18 console.log(p.getName()); //Nicholas
など。ただし、次の場合:
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()); //18 console.log(p.getName()); //Nicholas
その結果、コンストラクターが変更されました。 。
その理由は、プロトタイプ自体もオブジェクトであるためです。コンストラクターは常に を指すため、上記のコードは
Person.prototype = new Object({ getName:function(){ return this.name; }, getAge:function(){ return this.age; } });
と同等です。現在のオブジェクトを作成するコンストラクターである場合、上記のコードの p.constructor の出力が Object であることを理解するのは難しくありません。
プロトタイプを変更した後もコンストラクターが依然として person を指すようにしたい場合はどうすればよいですか?簡単です。値を Person.prototype.constructor に直接割り当てるだけです:
Person.prototype = { constructor:Person, getName:function(){ return this.name; }, getAge:function(){ return this.age; } }
上記は、エディターによって導入された JavaScript のコンストラクターです。その他の関連チュートリアルについては、 を参照してください。 JavaScript ビデオチュートリアル!