js就是个面向对象语言,一切皆对象
一、什么是面向对象?
举个最简单点的例子来区分 面向过程和面向对象
有一天你想吃鱼香肉丝了,怎么办呢?你有两个选择
1、自己买材料,肉,鱼香肉丝调料,蒜苔,胡萝卜等等然后切菜切肉,开炒,盛到盘子里。
2、去饭店,张开嘴:老板!来一份鱼香肉丝!
看出来区别了吗?这就是1是面向过程,2是面向对象。
二、对象实例化方式
1.字面量创建
弊端:这样的写法如果多生成几个(100个!)实例,写起来就非常麻烦,并且造成代码冗余。
2.内置构造函数
弊端:通过写一个函数,解决代码重复的问题,但还是造成了代码冗余。
3.工厂函数
弊端:无法判断对象属于哪个类型。
4.构造函数模式
弊端:每个实例调用的方法应该是一致的,但是实际上在生成实例时,各自都创建了自己的方法。消耗了内存。
三、Prototype 原型
.Javascript中所有的对象都是Object的实例,并继承Object.prototype的属性和方法,也就是说,Object.prototype是所有对象的爸爸。
四、原型链
让一个类型(构造函数)的原型对象 访问另外一个函数的s属性
查找顺序
在Js中
1.在自身的私有属性查找
2.沿着原型(链)向上查找一直到objec.prototype为止
五、this指向
1.普通模式下
指向调用函数的对象。
对象里面指向obj,箭头函数下this指向父级所在环境中的this对象。
2.严格模式下
指向具体的调用对象。如果没有就指向undefined,不会指向window。
指导思想:谁调用这个函数或者方法,this就指向谁
本人还是一个新手,如有不足望多多指正,希望在逆战班里可以越学越好加油!
来源:CSDN
作者:cmcblog
链接:https://blog.csdn.net/wqei123/article/details/104466865