一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第2天,点击查看活动详情。 一、面向对象的介绍
面向对象 : 是一种注重结果的 思维方式
面向过程 : 注重的是过程
面向对象 : 注重的是结果
2.面向对象 本质是 面向过程的封装
1.面向过程 : 注重的是过程 (代码冗余)
面向对象 : 注重的是结果
使用全局函数 : 就会导致全局变量污染
使用对象 : 解决变量污染
今后工作中,如果遇到一个需求,先在网上去找有没有专业的对象来解决需求。如果有就直接使用,没有就自己写
1.别人写好的对象 : 优点:效率高 缺点:维护不便
2.自己写对象 : 优点:便于维护 缺点:效率低
二、内置对象
1、array对象
arr.concat(数组)连接数组, 返回值是连接后的数组
应用: 上拉加载下一页,需要将下一页的数组连接到后面
arr.join('分隔符') : 把数组中的每一个元素连接成字符串
应用: 把数组元素拼接成字符串在页面显示。 例如 歌手 ['周杰伦','温岚'] ->周杰伦&温岚
arr.reverse() : 翻转数组
arr.sort() : 数组排序
numArr.sort( function(a,b){
// return a-b//从小到大
return b-a//从小到大
} )
2、string对象
str.length : 长度
str[下标] : 获取某个字符
str.indexOf('字符串') : 获取 ‘字符串’首字母 在str中的下标
如果存在,则返回首字母下标。 如果不存在则返回固定值 -1
应用场景: 可以判断一个字符串 在不在str中
str.split('分隔符') : 以分隔符 分割str, 分割的每一个部分放入数组中
应用场景 : 解析url中的参数
str.substr(下标,长度) : 从'下标'开始截取'长度'的字符
大小写转换 : (中文没有大小写)
'adaAFSsdfsdSDFS'.toLocaleUpperCase()转大写
'adaAFSsdfsdSDFS'.toLocaleLowerCase()转小写
三、原型对象
工厂函数 : 函数的作用是用于 创建对象
**重点
构造函数的作用与工厂函数一致,也是用于创建对象。 但是构造函数代码更简洁。
构造函数 : 使用new调用一个函数, 这个函数叫做构造函数
new工作原理4个流程
(1)创建空对象
(2)this指向这个对象
(3)对象赋值
(4)返回这个对象
**
new注意点 : 如果手动在构造函数中return
return 值类型 : 无效,还是返回new创建的对象
return 引用类型 : 有效,覆盖new创建的对象
原型对象:使用对象 : (1)解决内存浪费 (2)解决变量污染
任何函数在创建的时候, 系统会自动创建一个与之对应的对象,称之为原型对象。
函数.prototype.属性值 = 函数等等 创建的前提条件是创建函数,声明一个函数就给你一个原型,只为这个函数服务,一夫一妻
1构造函数
2Prototype:原型对象
实例对象可以无条件调用原型对象
constructor属性, constructor : 属于原型对象,指向构造函数;可以让实例对象知道自己是被哪个构造函数创建的
构造函数 、 原型对象 、 实例对象 三者之前的关系
(1) prototype : 属于构造函数, 指向原型对象
* 解决构造函数内存浪费 + 变量污染
(2) proto : 属于实例对象, 指向原型对象
* 让实例对象直接访问原型的成员
(3) constructor : 属于原型对象,指向构造函数
* 可以让实例对象知道自己是被哪个构造函数创建的
四、静态成员与实例对象
静态成员 : 属于函数的成员
实例成员 : 属于实例对象的成员
静态方法
获取对象所有的属性值 : Object.values( 对象名 )
实例成员
对象名.对象值