函数的原型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是。偷窃,这里是借用.
组合借用继承的问题
组合继承(基本可用,基本不用)