1.call()
call()可以调用函数
call()可以修改this的指向,使用call()的时候,参数1,是修改后的this指向,参数2、3传参。
举个🌰:
function fn(x,y){
console.log(x+y)
}
let o = { name : 'andy'}
fn.call(0,1,2) 此时函数中的this指向对象()
2.ES5新增方法
2.1.数组方法
2.1.1.forEach遍历数组
arr.forEach(function (value,index,array){
参数1:数组元素(value)
参数2:数组当前索引(index)
参数3:当前的数组(array)
})
相当于数组遍历的for循环,没有返回值
2.1.2.filter过滤数组
let arr = [12,22,33,44]
let newArr = arr.filter(function(value,index,array){
return value >= 20
})
console.log(newArr) [22,33,44] 返回值是一个新数组
2.1.3.some 查找数组中是否有满足条件的元素
let arr = [10,30,4]
let flag = arr.some(function(value,index,array){
return value < 3
})
console.log(flag) //false
返回值是布尔值,只要找到满足条件的一个元素就立马终止循环。
2.1.4.map
let arr = [1,2,3,4,5]
let newArr = arr.map(function(value,index,array){
return value + 1
})
console.log(newArr) [2,3,4,5,6]
将数组中的每个元素调用一个提供的函数,结果返回一个新数组
2.1.5.every 查找数组中的所有元素是否满足条件
let arr = [1,2,3,4]
let newArr = arr.every(function(value,index,array){
return value > 3
})
console.log(newArr) //false
2.2.字符串方法
2.2.1.trim方法去掉字符串两端的空格
举个🌰:
let str = ‘ 那么 ’
console.log(str.trim()) //那么,(会去掉两端的空格)
2.3.对象方法
2.3.1.获取对象的属性名
Object.keys(对象) 获取到当前对象中的属性名,返回值是一个数组
举个🌰:
let obj = {
id:1,
name :'DW'
}
let result = Objet.keys(obj)
consoloe.log(result) [id,name]
2.3.2.设置或修改对象中的属性
Object.defineProperty(对象,修改或新增的属性名,{
value:修改或新增的属性的值,
writeable:true/false 如果为false,不允许修改这个值
enumerable:false 如果为false,则不允许遍历,默认false
configurable:false 如果为false,则不允许删除这个属性,属性是否可以被删除或是否可以再次修改特性
})