原型链那些事

原型和原型链

  • prototype

每个构造函数都有一个prototype属性,这个属性指向函数的原型对象

  • __proto__

每个实例对象都有__proto__属性,这个属性指向构造函数的原型

  • constructor

    每个原型都有一个constructor属性,指向该关联的构造函数

  • 原型的原型

    原型对象是通过Object构造函数生成的

    原型的__proto__等于Object.prototype Object.prototype的__proto__等于null

 

new操作符

new操作符新建了一个空对象

这个对象原型指向构造函数的prototype

让函数中的this指向对象(call/apply)

执行构造函数后返回这个对象

 

bind/apply/call

  • 三者都可以改变函数的this对象指向。

  • 三者第一个参数都是this要指向的对象,如果如果没有这个参数或参数为undefined或null,则默认指向全局window。

  • 三者都可以传参,但是apply是数组,而call是参数列表,且apply和call是一次性传入参数,而bind可以分为多次传入。

  • bind 是返回绑定this之后的函数,便于稍后调用;apply 、call 则是立即执行 。

 

浅拷贝和深拷贝

浅拷贝:也就是拷贝A对象里面的数据,但是不拷贝A对象里面的子对象

深拷贝:会克隆出一个对象,数据相同,但是引用地址不同(就是拷贝A对象里面的数据,而且拷贝它里面的子对象)

赋值:获得该对象的引用地址

 

posted @ 2020-04-27 20:43  KWskrrrr  阅读(107)  评论(0编辑  收藏  举报