javascript call/apply

Posted mingzhanghui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript call/apply相关的知识,希望对你有一定的参考价值。

* 实现函数 callIt,调用之后满足如下条件
1、返回的结果为调用 fn 之后的结果
2、fn 的调用参数为 callIt 的第一个参数之后的全部参数

 

function callIt(fn) {
    return fn.apply(this, [].slice.call(arguments, 1));
}

// test
var fn = function(a, b, c) {
	return a+b+c;
}

callIt(fn, 1, 2, 3);   // 6

  

* 实现函数 partialUsingArguments,调用之后满足如下条件:
1、返回一个函数 result
2、调用 result 之后,返回的结果与调用函数 fn 的结果一致
3、fn 的调用参数为 partialUsingArguments 的第一个参数之后的全部参数以及 result 的调用参数

function partialUsingArguments(fn) {
    var args = [].slice.call(arguments, 1);
    return function() {
    	// [].slice.call(arguments) => 把arguments伪数组转换为数组
    	return fn.apply(this, args.concat([].slice.call(arguments)))
    }
}

  






以上是关于javascript call/apply的主要内容,如果未能解决你的问题,请参考以下文章

学习JavaScript之this,call,apply

JavaScript中的apply()方法和call()方法使用介绍

Javascript之模拟实现call,apply

javascript中的call.apply方法是针对function本身定义的内容,并不能将

javascript 中的apply call 的理解

JavaScript 之 call apply bind