# 2019年03月刊
# 2019/03/27 - 2019/03/31 ⌚️
请问这句语句
var args=[].slice.call(arguments,1)
是什么意思?点击
先看原函数:
function a() { var args = [].slice.call(arguments, 1); console.log(args); } a('haha', 1, 2, 3, 4, 5); // log出[1, 2, 3, 4, 5] a('run', '-g', '-b'); // log出['-g', '-b']
1
2
3
4
5
6
7- 首先,函数 call() 方法,第一个参数改变函数的 this 指向,后面剩余参数传入原函数 slice 中
- arguments 是什么?
arguments 是函数中的一个类数组的参数集合对象 如:
{'0': 'haha', '1': 1, '2': 2}
- slice 为数组可从已有的数组中返回选定的元素。
此题为从 index = 1 往后
- 综上,这句语句的作用是——将函数中的实参值转化成数组
-
var a = { n: 1 }; var b = a; a.x = a = { n: 2 }; // a ? b ? a.x ? 结果是什么?
1
2
3
4