构造函数和原型
new的时候做的的4个事情
1.在内存中创建一个新的空对象
2.让this指向这个新对象
3.执行构造函数里的代码 给这个新对象 添加属性和方法
4. 返回这个新对象
静态成员与实例成员
静态成员:由构造本身创建的成员 只能由构造函数本身来访问
实例成员:在构造函数内部创建的对象成员为实例成员 只能由实例化对象来访问
构造函数原型prototype
什么是原型对象:一个构造函数的属性 这个属性也是对象 称prototype 为原型对象
原型对象对象相当于公共区域 所有同一个类的实例都可以访问这个原型对象 可以将这个对象中的共有内容 统一设置在原型对象中
在js中 每当定义一个函数 就会自带一个prototype属性 这个属性指向原型对象 并且这个属性是一个数据类型的值 不包括箭头函数
总结:所有公共属性写在构造函数里面 所有公共方法写在原型对象里面 每个对象都有一个属性 对象原型 执行原型对象
对象原型_proto_
主要作用:指向prototype
每一个对象都有一个原型 作用指向原型对象prototype
构造函数和原型对象都有一个原型属性proto 指向构造函数的prototype原型对象
1.proto是一个标准属性 不可以拿来赋值和设置只读属性 2. proto对象原型和原型对象prototype是等价的
原型链
找一个函数的方法 找的时候就是在当前对象找 找不到就去prototype找 然后再去proto找 接着去object找 直到找到的是null 这就是原型链吧