原型链的一些学习记录

104 阅读2分钟

函数的原型prototype

   函数的原型对于构造函数创建对象有什么用呢?
   引入一个新的概念:所有的函数都有一个prototype的属性(不是__proto__)
   1.将函数看成是一个普通的对象时,它是具备__proto__(隐式原型)
   2.将函数看成是一个函数时,它是具备prototype(显示原型)
       作用:构建对象时,给对象设置隐形原型的

new操作符

1.在内存中创建一个新的空对象
2.将这个空对象赋值给this
3.将函数的显示原型属性赋值给这个对象的隐式原型
4.执行函数中代码
5.将这个对象默认返回

##1.什么是函数的显示原型,区分和对象原型的区别。2.函数的原型的作用,在通过new操作创建对象时,将这个显示原型赋值给创建出来对象的隐式原型.

显示原型中非常重要的属性:constructor

   原型上都会添加一个属性叫做constructor,这个constructor指向当前的函数对象

面向对象的特性

面向对象的三大特性:封装,继承,多态
封装:将属性和方法封装到一个类中,可以称之为封装的过程
继承:继承是面向对象中非常重要的,不仅仅可以减少重复代码的数量,也是多态的前提(纯面向对象中)
多态:不同的对象在执行时表现出不同的形态
(多态补充):多态的存在有如下条件:1.必须有继承(实现接口)2.必须有父类引用指向子类对象

实现真正的继承前,我们需要知道概念:原型链

从一个对象上获取属性,如果在当前对象中没有获取到就回去它的原型上获取。

借用构造函数继承

为了解决原型链中存在的问题,constructor stealing(借用构造函数)
steal是。偷窃,这里是借用.

组合借用继承的问题

组合继承(基本可用,基本不用)