JS训练

牛客训练


调用函数有3种方式://注意括号与大小写,空指针问题。                             
obj.func();                                       
func.call(obj,args);//参数列出
func.apply(obj,[m,n......]);//参数数组
     //三种方案 
//apply     function speak(fn,obj)                    function   arg(fn,arr)
            { return   fn.apply(obj);  }             {       return  fn.apply(fn,arr);    }
                                                //或者{       return  fn.applya(this,arr);}  
                                                   
//call      function  speak(fn,,obj)            function   arg(fn,arr)
            {return    fn.call(obj);   }       { return  fn.call(fn,arr[0]),arr[1],arr[2];}
                                        //或者{ return fn.call(this,arr[0]),arr[1],arr[2];}
//bind      function  speak(fn,obj)
            {return   fn.bind(obj)();  }

例题:(1)函数传参将数组 arr 中的元素作为调用函数 fn 的参数

输入:     function (greeting, name, punctuation) 
          {return greeting + ', ' + name +  (punctuation || '!');}, ['Hello', 'Ellie', '!']
输出:      Hello, Ellie!
function argsAsArray(fn, arr) {  
    return  fn.apply(this,arr);
}

(2)函数上下文 :将函数 fn 的执行上下文改为 obj 对象

输入:      function () {return this.greeting + ', ' + this.name + '!!!';},
            {greeting: 'Hello', name: 'Rebecca'}
输出:       Hello, Rebecca!!!
function speak(fn, obj) {
    return fn.apply(obj);
}

(3) 返回函数:实现函数 Function:1返回值为一个函数 f 。2调用返回的函数 f,3所有函数的参数数量为 1,且均为 String 类

输入:  functionFunction('Hello')('world')
输出;   Hello, world
function functionFunction(str) 
{
    var f =function(s)
    {    return str+", "+s;
       }    return f; 
}

 

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值