ここで、JavaScript のコンストラクターについて簡単に説明します。今からそれを皆さんと共有し、皆さんの参考にしてください。
コンストラクター、コンストラクター、この名前はよく知られていますが、コンストラクターは常に現在のオブジェクトを作成するコンストラクターを指します。
ここで注意すべき点は、各関数にはプロトタイプ属性があり、このプロトタイプのコンストラクターはこの関数を指しているということです。このとき、この関数のプロトタイプを修正したときに事故が発生しました。
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はオブジェクトです。
プロトタイプを変更した後もコンストラクターが person を指すようにしたい場合はどうすればよいですか?簡単です。値を Person.prototype.constructor に直接代入するだけです。
Person.prototype = { constructor:Person, getName:function(){ return this.name; }, getAge:function(){ return this.age; } }
上記は私がまとめたもので、将来的には誰にとっても役立つことを願っています。
関連記事:
JavaScriptを使って写真を切り抜いて保存する簡単な実装
JavaScriptのArray(配列)オブジェクトの使い方について
を使って写真を切り取って保存する簡単な実装JavaScript
以上がJavaScript のコンストラクターの基本知識に関する簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。