js의 계승과 원형 체인 탐구

1295 단어
1.Object.create (obj, {}) 방법 구현
    var car =  {
        color:'red',
        getColor:function () {
            console.log(this.color)
        }
    }
    newObj = Object.create(car,{
        t1:{
            value:'zzzzzzz',
            writable:true
        },
        bar: {
            configurable: false,
            get: function() { return bar; },
            set: function(value) { bar=value }
        }
    });
    newObj.getColor();  // red
  •     function Person(){}
        Person.prototype.name = 'aaa';
        Person.prototype.sayName = function(){
            alert(this.name);
        };
        var person1=new Person();
    
        //  :
        function Teacher(){}
        Teacher.prototype = new Person();
        Teacher.prototype.constructor = Teacher;
        var teacher = new Teacher();
        alert(teacher.age);
    

    Person.prototype.constructor ;//구조 함수를 가리키는 Person person1.__proto__ == Person.prototype ;//생성된 인스턴스에는 __proto__속성, 그리고 구조 함수의 원형을 가리킨다.방문 대상 선생님.age 때 인스턴스에 이 속성이 없기 때문에 인스턴스의 __proto__구조 함수 Teacher의 원형 대상 찾기;만약 Teacher의 원형에 없다면, Teacher의 원형 대상은 Person의 실례person1을 가리키기 때문에, Person1에 age 속성이 없다면, __를 통해proto__구조 함수 Person의 원형 대상 찾기;하면, 만약, 만약...protorype는 age 속성을 포함하지 않습니다. Object의 원형이 될 때까지 계속 위로 찾습니다.

    좋은 웹페이지 즐겨찾기