原型链

95 阅读1分钟

1.每一个函数(类)都有一个 默认的 prototype属性,指向自己的原型对象

2.每一个实例(对象)都有一个__proto__属性,指向自己的所属类的原型对象

3.每一个默认的原型对象上都有一个  constructor属性  指向对应的构造函数本身

function Person(name,age){

this.name = name;

this.age = age;

}

Person.prototype.eat = function(){}

Person.prototype.play = function(){}

var p1 = new Person('小红',10)

var p2 = new Person('小明',11)


4.普通函数执行过程:开辟一个作用域,形参赋值,变量提升,代码从上到下执行

5.new执行过程:开辟一个作用域,形参赋值,变量提升,开辟一个堆内存,把this的指向改成这个堆内存,然后再代码从上到下执行。