prototype


[javascript] 7. JavaScriptコンストラクタとプロトタイプ

JavaScript:プロトタイプの理解

https://www.notion.so/prototype-da139fe137ac4559ac5793679962b03a#dcb78ffe8653403e813a4cfa5d83d050
与えられたインスタンスに必要な値がない場合、その親(オブジェクト)のプロトタイプが受信されます.
Object.prototype.me = "you we";

function Person(name) {
  this.name = name;
}

const ken = new Person("ken");
//ken은 person의 인스턴스
console.log(ken.me);

object.prototype.constructor = object

CanolaError.prototype.constructor = CanolaError;

constructor


関数を定義すると、プロトタイプオブジェクトが定義され、オブジェクトのメンバーとして使用されます.  constructor  属性があります.
constructorプロパティは、プロトタイプオブジェクトを生成する関数への参照を表します.
このプロトタイプオブジェクトのコンストラクション関数プロパティは、継承によってインスタンスからアクセスできます.
ソース:
https://webclub.tistory.com/392
[Web Club]
プロトタイプ、コンストラクション関数、インスタンス
console.log(mySon.constructor == Person.prototype.constructor); // true 반환
console.log(mySon.constructor == Person); // true 반환
Copy
ここで注意すべきは,コンストラクション関数属性は関数名だけではない. これは関数オブジェクトへの参照です.
constructor prototypeプロパティはジェネレータ自体への参照であるため、この値で関数を呼び出すか、次のようにオブジェクトを作成できます.
ソース:
https://webclub.tistory.com/392
[Web Club]

object.create()

  • 空のオブジェクト
  • を作成
    var a = Object.create({});
    
    a;
    //{}
    
  • プロトタイプ継承
  • var obj = {hello:1}
    var ken = Object.create(obj) //ken은 빈 객체
    // 빈 객체인 ken의 프로토타입을 obj로 상속
    // = 프로토타입을 obj로 갖는 빈 객체 ken 생성
    
    ken.hello;
    // 1
    Human.prototype = Object.create(Animal.prototype);
    Human.prototype.constructor = Human;
    // Animal에서 프로토타입을 받아온 이후 다시 constructor 변경
    // 문짝을 떼고 내부 공사를 마치면 문짝을 다시 붙여두어야 하는 것과 같은 것
    
    // 위 두 줄은 세트로 함께 쓴다.
    
    Human.prototype.ade;
    
    //ade가 human에 있는지 찾고>없으면 Animal > 없으면 Object에서 찾는다.

    prototype override?


    新とobject。create()継承を使用する違い


    [ECMAScript][翻訳]オブジェクト。create()とnew演説者の違いを知る|MINJUNG
    function Dog(){
        this.pupper = 'Pupper';
    };
    
    Dog.prototype.pupperino = 'Pups.';
    var maddie = new Dog();
    var buddy = Object.create(Dog.prototype);
    
    //Using Object.create()
    console.log(buddy.pupper); //Output is undefined
    console.log(buddy.pupperino); //Output is Pups.
    
    //Using New Keyword
    console.log(maddie.pupper); //Output is Pupper
    console.log(maddie.pupperino); //Output is Pups.
    これは新しいDogが実際にジェネレータコードを実行し、Objectです.createはジェネレータコードを実行しません.
    (JavaScript)継承オブジェクト
  • Object.createはオブジェクトを作成しますが、作成者は実行しません.つまり、原型の
  • のみが加わる

  • Reference