共享这些方法。
总结: 原型是什么: 是一个对象,也称为 prototype 为原型对象
原型的作用是什么: 共享方法
一般情况下,我们的公共属性定义到构造函数里面,公共的方法我们放到原型对象身上
对象原型 _proto_
对象都会有一个属性 _proto_ 指向构造函数的 prototype 原型对象,之所以我们对象可以使
用构造函数 prototype 原型对象的属性和方法,就是因为对象有_proto_原型的存在
注意 _proto_对象原型和原型对象 prototype 是等价的
_proto_对象原型的意义就在于为对象的查找机制提供一个方向,或者说一条路线,但是它
是一个非标准属性,因此在实际开发中不可以使用这个属性,它只是内部指向原型对象
Prototype
原型链:是每个对象都有原型可通过_proto_一直向上查找到父类的原型对象一直到指向 null,
JS 中成员的查找机制(规则)
当访问一个对象的属性或方法时,首先查找对象自身有没有该属性
若没有就查找它的原型也就是_proto_指向的 prototype 原型对象
若还没有就查找原型对象的原型(object 的原型对象)
依次类推指导查找到 Object (null)为止
原型对象的 this 指向 ———>指向的都是实例对象
扩展内置对象
可以通过原型对象,对原来的内置对象进行扩展自定义的方法,比如给数组自增加自定义求
偶数和的功能
继承:
在 ES6 之前并没有给我们提供 extends 继承,我们可以通过构造函数+原型对象模拟实现继
承,被称为组合继承。
call() 调用这个函数并且修改函数运行的 this 指向
Fun.call(thisArg, arg1,arg2,....)
thisArg: 当前调用函数 this 的指向函数
arg1, arg2 :传递的其他参数
1. 借用构造函数继承父类型属性
核心原理:通过 call()把父类型的 this 指向子类型的 this,这样就可以实现子类型继承父
类型的属性
ES6 通过 类实现面向对象编程
类的本质——>还是函数,我们也可以简单认为 类 就是构造函数的另外一种写法
类的所有方法都定义在类的 prototype 属性上
类创建的实例,里面也有_proto_指向类的 prototype 原型对象
所以 ES6 的类它的绝大部分功能 ES5 都可以做到,新的 class 写法只是让对象原型的写法更
评论0
最新资源