JavaScript面接試験問題まとめシリーズ(四)


4.JavaScriptプロトタイプとプロトタイプチェーン
4.1概念紹介
  • 原型と原型の対象原型も対象で、原型の対象となります.だから、原型と原型の対象は同じです.簡潔で、フルネームという人がいます. 
  • プロトタイプチェーンプロトタイプ(プロトタイプオブジェクト)、構造関数および(オブジェクト)例はプロトタイプチェーンを構成している.プロトタイプチェーンの核心は依存対象の__proto__に向けられており、依存対象自体が存在しない属性を検索すると、作成対象の構築関数を一層上に検索し、Objectをずっと探しているので、__proto__の指向はない. 
  • コンストラクタの最初の文字の大文字の関数です.
    function Person() {
    
    }
     
  • オブジェクト例オブジェクトには、2つの種類がある.
  • 関数オブジェクト:new Function();によって作成されたオブジェクト.
  • 一般オブジェクト:関数オブジェクト以外のすべてのオブジェクト.
  • 4.2概念間の関係
  • 各関数には一つのprototype属性があります.
  • 各々のJavaScriptオブジェクト(nullを除く)は一つの属性を持ち、__proto__と呼ばれ、この属性はそのオブジェクトのプロトタイプを指す(prototype).
  • の各プロトタイプは、constructor属性が関連する構造関数を指しています.
  • 4.3例
  • 構築関数を使用してオブジェクトを作成します. 
    function Person() {
    
    }
    
    var person = new Person();
    person.name = "Kevin";
    
    console.log(person.name); // "Kevin"
    Personは構造関数であり、newを用いて例示的なオブジェクトpersonを作成した. 
  • prototypeは各関数にprototype属性があります. 各JavaScriptオブジェクト(nullを除く)は、作成時に別のオブジェクトに関連しています.このオブジェクトは私たちが話しているプロトタイプです.どのオブジェクトもプロトタイプから属性を継承します. 
    function Person() {
    
    }
    
    //  :prototype         
    //  __proto__         
    Person.prototype.name = "Kevin";
    var person1 = new Person();
    var person2 = new Person();
    
    console.log(person1.name); // "Kevin"
    console.log(person2.name); // "Kevin"
  • プロト 
    function Person() {
    
    }
    var person = new Person();
    console.log( person.__proto__ === Person.prototype ); // true
  • constructor 
    function Person() {
    
    } 
    console.log( Person === Person.prototype.constructor ); // true
  • 4.4まとめ
    プロトタイプとプロトタイプチェーンを理解する前提は、この中に全部でいくつの概念があり、概念と概念の関係があるかを明らかにすることです.
    この中の関連概念は、プロトタイプ、プロトタイプ、コンストラクション、オブジェクト(例)、プロトタイプ、プロト、コントラクターです.
    彼らの関係はどうですか?
  • まず、大文字の先頭の関数を作成すると、この関数は構造関数です.
  • 私たちはnewのこのコンストラクタの実例となるオブジェクトの場合、この例は私たちが言っているオブジェクト(例)であり、プロト属性を持っています.
  • プロトタイプとプロトタイプオブジェクトは、構造関数newに基づいて出てくるオブジェクト、すなわち関数オブジェクトに基づいて存在し、prototype属性を有している.
  • プロトタイプおよびプロトタイプオブジェクトにもcontructor属性(またはポインタ)があり、関連するコンストラクタを指す.
  • 各オブジェクトはプロト属性がプロトタイプのオブジェクトを指しています.このプロトタイプのオブジェクトは自分のプロトタイプもあります.これを類推してプロトタイプのチェーンが形成されました.特定の属性を検索する時、まずこの対象の中を探してみます.もし見つけられなかったら、その原型の対象の中に探しに行きます.もしまだないなら、原型の対象の原型の対象の中を探しに行きます.この操作はプロトタイプチェーン全体に委託されています.つまりプロトタイプチェーンです.
  • 参照リンク:
    https://www.jianshu.com/p/be7c95714586
    https://blog.csdn.net/xiaotao_css/articale/detail/72782416
    https://blog.csdn.net/shuixiou1/article/details/81048816
    https://www.cnblogs.com/zhengyeye/p/8986836.html
    https://blog.csdn.net/m0_37585915/articale/detail/80843945
    https://www.jianshu.com/p/08c07a953fa0
    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Inheritance_and_the_プロトタイプchain
    https://blog.csdn.net/lyt_angglarjs/articale/detail/100729591
    https://www.cnblogs.com/jianghao233/p/8983176.html
    https://blog.csdn.net/m0_37585915/articale/detail/80843945
    https://zhuanlan.zhihu.com/p/23090041?refer=study-fe
    https://www.jianshu.com/p/dee9f8b14771
    https://www.cnblogs.com/libin-1/p/5820550.html
    https://blog.csdn.net/yucihent/article/details/79424506
    https://zhuanlan.zhihu.com/p/22787302