十二 总结JS原型

基本概念:

  对象:属性和方法的集合(变量和函数的封装)。

  构造器函数:用于创建对象的函数,通过new关键字生成对象。函数名一般首字母大写的。

  原型对象:每个函数都有一个prototype属性,它是一个指向原型对象的指针(原型对象在定义函数时同时被创建)。

 1.new 

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

var p = new Person(32); // 使用new操作符,借助Person函数,就创建了一个对象

// new + 构造函数做了哪些事情?
// 1.首先创建一个空表   {}
// 2.空表给__proto__赋值   {__proto__:Person.prototype} 
// 3.在将这个表作为this,调用构造函数Person(age)并执行  相当于
// Person.call({__proto__:Person.prototype}, age);
// 
// Person.prototype表的值如下
{
    constructor : Person,
    __proto__:{
        ......
        constructor : Object,           
        __proto__:null,
    },
}

// 4.返回一个表赋值给p
{
    age : 32,
    __proto__:  {
        constructor : Person,
        __proto__:  {
            ......
            constructor : Object,           
            __proto__:null,
        },
    },
    
}

 

1.JS中每个对象都有一个__proto__属性,指向这个对象的构造函数的原型对象(prototype)

     实例对象.__proto__ == 构造函数.prototype   // true

2.JS中函数对象拥有一个prototype属性,同时函数又是一个对象,所以有拥有__proto__属性;

     函数.__proto__ == Function.prototype; //true

3.Object对象的

posted @ 2018-11-05 19:02  jadeshu  阅读(110)  评论(0编辑  收藏  举报