原型对象
1.面向对象
- 面向对象:是一种只注重结果的思维方式
- 面向过程:注重过程
- 两者的关系:面向对象的本质是面向过程的一种封装
2.内置对象
1.内置对象api
- 内置对象api : js作者写好的对象的一些方法
- 内置对象 : js作者提前写好的对象,直接拿来使用即可
- api : 是预先定义的函数
2.array对象
- (1).数组增删改查
push() : 向数组的末尾添加一个或更多元素,并返回新的长度。
unshift() :向数组的开头添加一个或更多元素,并返回新的长度。
pop() :删除数组的最后一个元素并返回删除的元素。
shift() : 删除并返回数组的第一个元素。
- (2)join('分隔符') : 把数组元素拼接成一个字符串
// 应用:歌手['周杰伦','温岚']->周杰伦&温岚 - (3)concat() 连接两个或更多的数组,并返回结果
// 应用:下拉加载下一页,返回值是新的数组
// 注意使用时,需要赋值
- (4)reverse() : 翻转数组
// 应用:价格升降序,距离远近等 - (5)sort() : 数组排序
//参数:回调函数 固定语法死记硬背
arr.sort(function (a, b) {
// return a - b//从小到大排序
// return b - a //从大到小排序
})
3.string对象:
(1).str[下标]
// 字符串也可以像数组那样通过下标获取 某个字符 console.log(str[5]) //5下标 前
(2). indexOf() : 返回某个指定首字符的位置下标
//应用: 检查一个字符串中是否有 某个字符 //返回的是第一个字下标 //有 : 下标 没有: 固定值-1
(3). split('分隔符') : 切割字符串
//返回值一定是数组 : 元素对应切割的每一个部分 //应用: 解析url中的参数(了解即可) // 'www.baidu.com?name=张三&age=20' 得到 { name:'张三',age:20 }
(4)substr(起始下标,截取长度) : 截取部分字符串
let str = str.substr(2, 5) //从第二个下标开始,往后截取5个字
(5).大小写转换(中文没有大小写)
.toLocaleLowerCase //小写 .toLocaleUpperCase //大写
(6)charAt()返回在指定位置的字符.(通过下标)
(7)trim()去除字符串两边的空格
4.原型对象
- 概念:当我们创建函数的时候,系统会自动帮你创建一个与之对应的对象,称之为原型对象
- 作用:解决变量污染,但是这个对象本身也会造成污染
5.原型对象关系
prototype : 属于构造函数,指向原型对象
- 作用:解决内存浪费+变量污染 proto : 属于实例对象,指向原型对象
- 作用: 实例对象 访问 原型对象的成员 constructor : 属于原型对象,指向构造函数
- 作用: 可以让实例对象知道自己是被谁创建的
(1) 构造函数
function person(name,age){
this.name=name
this.age=age
}
(2)原型对象
person.prototype=function(){
this.eat=eat
}
(3)实例对象
let p1=new person(name,age)
let p2=new person(name,age)
//检测构造函数、原型对象、实例对象三者之间关系: 两行代码
console.log(p1.__proto__.constructor === Person)
//true (你爹是你爹,你妈的老公是你爹)
console.log(p1.__proto__ === Person.prototype)
//true (你妈是你妈)
(4) 静态与实例成员
静态成员:属于函数的成员
实例成员:属于实例对象的成员
获取对象所有的属性值:
Object.value(对象名)
let obj={}
Object.value(obj)
Object.key(obj)