构造函数、原型对象、实例对象关系

2018-11-14  本文已影响0人  箩篼
    // 定义一个构造函数
    function Person(name, age) {
        this.name = name;
        this.age = age;
    }
    // 给构造函数的原型对象添加属性和方法
    Person.prototype.say = function () {
        console.log(this.name, this.age);
    };
    Person.prototype.type = "Human";
    
    // 通过构造函数创建对象
    var obj1 = new Person("luodou", 13);

    console.log(obj1);  //Person

    console.log(Person.prototype);  //Object
    console.log(obj1.__proto__);    //Object
    console.log(obj1.__proto__ === Person.prototype); // true
    console.log(obj1.__proto__.constructor);    //ƒ Person(name, age) {this.name = name;this.age = age;}
    console.log(Person.prototype.constructor);  //ƒ Person(name, age) {this.name = name;this.age = age;}
    console.log(obj1.__proto__.constructor === Person.prototype.constructor);  //true

关系图

原型链

上图


看图,不解释

上一篇 下一篇

猜你喜欢

热点阅读