<script>
const obj ={
a:'a',
b:function (arg){
const _this = this
console.log(arg)
function fun(...arg){
console.log(arg)//(2) [12, 2]
// console.log(this,arguments)//(2) [12, 2]0: 121: 2length: 2[[Prototype]]: Array(0)at: ƒ at()concat: ƒ concat()constructor: ƒ Array()copyWithin: ƒ copyWithin()entries: ƒ entries()every: ƒ every()fill: ƒ fill()filter: ƒ filter()find: ƒ find()findIndex: ƒ findIndex()flat: ƒ flat()flatMap: ƒ flatMap()forEach: ƒ forEach()includes: ƒ includes()indexOf: ƒ indexOf()join: ƒ join()keys: ƒ keys()lastIndexOf: ƒ lastIndexOf()length: 0map: ƒ map()pop: ƒ pop()push: ƒ push()reduce: ƒ reduce()reduceRight: ƒ reduceRight()reverse: ƒ reverse()shift: ƒ shift()slice: ƒ slice()some: ƒ some()sort: ƒ sort()splice: ƒ splice()toLocaleString: ƒ toLocaleString()toString: ƒ toString()unshift: ƒ unshift()values: ƒ values()Symbol(Symbol.iterator): ƒ values()Symbol(Symbol.unscopables): {copyWithin: true, entries: true, fill: true, find: true, findIndex: true, …}[[Prototype]]: Object
}
fun.call(_this,12,2)//仍然打印本this
//总结:call会把第一个参数以外的所有参数当作被调用函数的参数传递
//arguments和...arg的区别是:arguments和是类数组对象,不仅包含所有参数还包括参数个数属性;而...arg仅仅是参数对象
}
}
debounce(12,2)
function debounce(...arg){
obj.b(1)
}
</script>
js中的call、arguments以及...arg(剩余参数语法)
最新推荐文章于 2024-05-24 16:59:46 发布