一:构造函数和原型
1.对象的创建方式
①利用new object()
②自变量---var obj={}
③利用构造函数
function Syar(name,age){
this.uname=name
this.age=age
this.sing=function(){
console.log('xxxxx')
}
}
构造函数的调用---也是需要实列化的!!!!
var ldh=new Star('刘德华',18)
2.实例成员和静态成员
3.构造函数存在的问题
存在浪费内存的问题---怎么解决?----构造函数原型
我们可以把构造函数相同的函数方法---都定义在原型对象上---这样所有的对象实例都可以访问。
二:原型
三:原型对象Prototype
四:对象原型_ _proto_ _
理解:就是我们每个对象都会有__proto__,这个__proto__会有原型对象prototype!!!
五:原型constructor
constructor指的就是构造函数本身!!!
六:原型链
原型的this指向
无论是原型对象prototype的this还是实列化的this都是指向的实列对象。
七:扩展内置对象
可以给原型对象上新增一些自定义的方法!!!
八:继承
1.call()
2.借用父构造函数的继承属性
①写构造函数
②写子构造函数---在子构造函数中调用父构造函数--并且通过通过call改变父构造函数的this,===》所以实例化子构造函数传入的值就是--给父构造函数==》this则是子构造函数==》
也就是继承了父构造函数的属性!!!!
3.借用原型对象继承父类型方法
九:类的本质
十:ES5新增数组方法、字符串方法、对象方法
循环:forEach()、map()、filter()、some()、eevery()
去除空格:tirm()
Object.keys(obj)