JavaScript のコンストラクターの基本知識に関する簡単な説明

亚连
リリース: 2018-05-21 10:16:20
オリジナル
829 人が閲覧しました

ここで、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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!