functionpick(object,...keys){let result = Object.create(null);for(let i =0, len = key.length; i<len; i++){
result[keys[i]]= object[keys[i]];}return result;}
可用以遍历对象中属性
使用限制
最多只能声明一个不定参数
一定要放在所有参数末尾
增强的Function构造函数
Function()构造函数:
期待任意数目的字符串参数。
最后一个参数是函数的函数体,它可以包含任意多条Javascript的语句,每条语句用分号分开。
//基本用法var add =newFunction("first","second","return first + second");//默认参数用法var add =newFunction("first","second = first","return first + second");//不定参数用法var add =newFunction("...args","return args[0]");
展开运算符
apply
Function.apply(obj,args)方法能接收两个参数
obj:这个对象将代替Function类里this对象
args:这个是数组,它将作为参数传给Function(args–>arguments)
将数组默认转换为一个参数列表
call
Function.call(obj,[param1[,param2[,…[,paramN]]]])
obj:这个对象将代替Function类里this对象
params:这个是一个参数列表
应用某一对象的一个方法,用另一个对象替换当前对象
展开运算符
简化使用数组给函数传参的过程
示例:
let values =[25,50,75,100]//apply方式
console.log(Math.max.apply(Math, values))//call方式
console.log(Math.max.call(Math,25,50,75,100))//展开运算符方式
console.log(Math.max(...values))
letreflect= value =>value;letsum=(num1, num2)=> num1 + num2;letgetName=()=>"Nicholas";letgetTempItem= id =>({ id : id, name:"Temp"});var result = values.sort((a, b)=> a - b);