//例一
function show(para)//step2----para只会接收第一个参数(这里为['hello','my','name','is']列表)
{
console.log(para);
}
function callShowFunc(ShowFunc,...para)//这里的para会接受一系列参数('hello','my','name','is'),形成一个列表
{
return ShowFunc(para,'tony');//step1----传入一个列表+一个字符串
}
console.log(callShowFunc(show,'hello','my','name','is'));
//例二
function show(...para)//step2----这里的para是一个参数列表,其中列表['hello','my','name','is']为参数列表中的第一个元素!!'tony'为列表中的第二个元素
{
console.log(para);
console.log(para[0]);
console.log(para[1]);
console.log(para[0][0]);
}
function callShowFunc(ShowFunc,...para)//这里的para会接受一系列参数('hello','my','name','is'),形成一个列表
{
return ShowFunc(para,'tony');//step1----传入一个列表+一个字符串
}
console.log(callShowFunc(show,'hello','my','name','is'));
//例三:函数方法apply中的数组
//3.1
var student={
name:'tony',
say:function(){
var saysomething=function(thing){//apply中比较特殊,thing并不会接受整一个['hello','everyone']列表作为一个参数,而是直接收‘hello’
console.log(this.name,' said ',thing);
}
saysomething.apply(this,['hello','everyone']);
}
}
student.say();
//3.2
var student={
name:'tony',
say:function(){
var saysomething=function(...thing){//apply中比较特殊,只有这样thing才会接受整个['hello','everyone'],thing的形式为['hello','everyone']
console.log(this.name,' said ',thing);
}
saysomething.apply(this,['hello','everyone']);
}
}
student.say();
[运行结果]