原型,原型链,tostring(),call/apply,封装

原型及原型链

    • 原型
      • 1.定义:
      • 2. 共有的属性可以放在原型里面
        • 原型的增删改查:
      • 原型对象:
      • Car.prototype 与 car.constructor
      • __proto__ 指向
      • 是cherry还是sunny?
    • 原型链
      • create方法 创建对象
        • 对象没原型例子
    • 包装类
      • 小bug,随机数例子
    • call/apply
      • apply

原型

1.定义:

原型,原型链,tostring(),call/apply,封装_第1张图片
简单理解例子:
原型,原型链,tostring(),call/apply,封装_第2张图片
原型,原型链,tostring(),call/apply,封装_第3张图片
构造函数制造出的对象的公共祖先

原型,原型链,tostring(),call/apply,封装_第4张图片
原型,原型链,tostring(),call/apply,封装_第5张图片

2. 共有的属性可以放在原型里面

原型的增删改查:

原型,原型链,tostring(),call/apply,封装_第6张图片
增加:只能通过 .原型 增加属性

删除:删除自己的
原型,原型链,tostring(),call/apply,封装_第7张图片
原型,原型链,tostring(),call/apply,封装_第8张图片
原型,原型链,tostring(),call/apply,封装_第9张图片

原型对象:

原型,原型链,tostring(),call/apply,封装_第10张图片

Car.prototype 与 car.constructor

定义
constructor 属性返回对创建此对象的数组函数的引用。
语法
object.constructor

原型,原型链,tostring(),call/apply,封装_第11张图片
原型,原型链,tostring(),call/apply,封装_第12张图片
原型,原型链,tostring(),call/apply,封装_第13张图片

原型,原型链,tostring(),call/apply,封装_第14张图片
原型,原型链,tostring(),call/apply,封装_第15张图片
原型,原型链,tostring(),call/apply,封装_第16张图片
原型,原型链,tostring(),call/apply,封装_第17张图片
在这里插入图片描述

proto 指向

原型,原型链,tostring(),call/apply,封装_第18张图片
原型,原型链,tostring(),call/apply,封装_第19张图片
原型,原型链,tostring(),call/apply,封装_第20张图片
原型,原型链,tostring(),call/apply,封装_第21张图片
原型,原型链,tostring(),call/apply,封装_第22张图片
原型,原型链,tostring(),call/apply,封装_第23张图片
在这里插入图片描述

是cherry还是sunny?

原型,原型链,tostring(),call/apply,封装_第24张图片
原型,原型链,tostring(),call/apply,封装_第25张图片
原型,原型链,tostring(),call/apply,封装_第26张图片
原型,原型链,tostring(),call/apply,封装_第27张图片
解释:
原型,原型链,tostring(),call/apply,封装_第28张图片
原型,原型链,tostring(),call/apply,封装_第29张图片
原型,原型链,tostring(),call/apply,封装_第30张图片
改变的是人,不是改变同一个人的属性名字
原型,原型链,tostring(),call/apply,封装_第31张图片
原型,原型链,tostring(),call/apply,封装_第32张图片


原型,原型链,tostring(),call/apply,封装_第33张图片
原型,原型链,tostring(),call/apply,封装_第34张图片

原型链

原型,原型链,tostring(),call/apply,封装_第35张图片

原型还有原型
__proto__属性,指向它的原型。

原型,原型链,tostring(),call/apply,封装_第36张图片
把原型连成链,是原型链。访问就是.prototype
原型,原型链,tostring(),call/apply,封装_第37张图片
原型,原型链,tostring(),call/apply,封装_第38张图片
原型,原型链,tostring(),call/apply,封装_第39张图片
原型,原型链,tostring(),call/apply,封装_第40张图片
原型链的上属性的增删改查 和原型的一样

小特例
原型,原型链,tostring(),call/apply,封装_第41张图片
原型,原型链,tostring(),call/apply,封装_第42张图片
引用值自己的修改
原型,原型链,tostring(),call/apply,封装_第43张图片
原型,原型链,tostring(),call/apply,封装_第44张图片
在这里插入图片描述
**********分割
原型,原型链,tostring(),call/apply,封装_第45张图片
原型,原型链,tostring(),call/apply,封装_第46张图片
*****分割
原型,原型链,tostring(),call/apply,封装_第47张图片
原型,原型链,tostring(),call/apply,封装_第48张图片

原型,原型链,tostring(),call/apply,封装_第49张图片
两种创建对象常用的一种:
原型,原型链,tostring(),call/apply,封装_第50张图片
原型,原型链,tostring(),call/apply,封装_第51张图片

create方法 创建对象

原型,原型链,tostring(),call/apply,封装_第52张图片
obj1的原型就是obj
原型,原型链,tostring(),call/apply,封装_第53张图片

对象没原型例子

原型,原型链,tostring(),call/apply,封装_第54张图片
现在构造出的对象就没有原型
原型,原型链,tostring(),call/apply,封装_第55张图片
原型,原型链,tostring(),call/apply,封装_第56张图片
原型,原型链,tostring(),call/apply,封装_第57张图片
原型,原型链,tostring(),call/apply,封装_第58张图片
原型,原型链,tostring(),call/apply,封装_第59张图片

包装类

原型,原型链,tostring(),call/apply,封装_第60张图片
重写的 toString
原型,原型链,tostring(),call/apply,封装_第61张图片
原型,原型链,tostring(),call/apply,封装_第62张图片

小bug,随机数例子

原型,原型链,tostring(),call/apply,封装_第63张图片
原型,原型链,tostring(),call/apply,封装_第64张图片
原型,原型链,tostring(),call/apply,封装_第65张图片
原型,原型链,tostring(),call/apply,封装_第66张图片
原型,原型链,tostring(),call/apply,封装_第67张图片
先×100再取整
在这里插入图片描述

call/apply

原型,原型链,tostring(),call/apply,封装_第68张图片
原型,原型链,tostring(),call/apply,封装_第69张图片
原型,原型链,tostring(),call/apply,封装_第70张图片
原型,原型链,tostring(),call/apply,封装_第71张图片
obj代替this
原型,原型链,tostring(),call/apply,封装_第72张图片
原型,原型链,tostring(),call/apply,封装_第73张图片
借用别人的函数实现自己的功能
原型,原型链,tostring(),call/apply,封装_第74张图片
原型,原型链,tostring(),call/apply,封装_第75张图片

用人家Person的方法,实现自己功能的封装
封装完后:
原型,原型链,tostring(),call/apply,封装_第76张图片

原型,原型链,tostring(),call/apply,封装_第77张图片
原型,原型链,tostring(),call/apply,封装_第78张图片
原型,原型链,tostring(),call/apply,封装_第79张图片

apply

只能传一个实参,(数组)。
原型,原型链,tostring(),call/apply,封装_第80张图片
原型,原型链,tostring(),call/apply,封装_第81张图片原型,原型链,tostring(),call/apply,封装_第82张图片
原型,原型链,tostring(),call/apply,封装_第83张图片
原型,原型链,tostring(),call/apply,封装_第84张图片

你可能感兴趣的:(javascript基础)