JS学習-プロトタイプチェーンの理解

2742 ワード

まず、構造関数を作成し、二つの例を作成します.
function shirt(){
        this.name="";
        this.age="";
        this.height="";
        this.weight="";
    }
    var shirt1=new shirt();
    var shirt2=new shirt();
shirt.prototypeのどの関数にもこの属性がありますが、関数だけがクラスとして使用されている場合にのみ意味があり、すべての共有方法をこの属性に保存します.この属性は明らかにオブジェクト型です.原型は共有雲として分かりやすく、その後定義された事例はすべてアクセスでき、修正もできると思います.例の検索は優先順位があります.まず自分の中で検索します.見つけられないなら共有に行って検索します.
    shirt.prototype.fn=function(){console.log("xxx");};
    console.log(shirt1.fn)
shirt 1にはfn属性は存在しませんが、プロトタイプに存在しますので、検索できます.shirt 1.fnは、shirt 2.fnおよびshirt.fnと同じです.
実例によって原型を修正する
    shirt.prototype.a=[1,2,3];
    shirt1.a=1;
    console.log(shirt2.a);
    console.log(shirt1.a);
この時のプリント結果は[1,2,3]と1 shirt 1.aは自分自身に属性aを書き込んでいます.検索には関わりませんので、原型のaは変わりません.
shirt1.a[1]=12;
    console.log(shirt2.a);
    console.log(shirt1.a);
今回の検索に関しては、aを探してaの中の索引が1の内容であることから、訪問したのは原型中のaで、原型中のaはポップアップ[1,12,3]と[1,12,3]を変えました.