JavaScript 模拟 apply 的实现


作者:Seiya

时间:2019年08月08日


apply 方法


apply() 方法调用一个具有给定this值的函数,以及作为一个数组(或类似数组对象)提供的参数。


注意:

call() 方法的作用和 apply() 方法类似,区别就是 call() 方法接受的是参数列表,而apply()方法接受的是一个参数数组。



模拟实现

apply 方法的模拟实现和 call 方法的实现类似,不过需要注意的一点是:

  • 数组参数的传递问题;

具体实现

Function.prototype.callFn = function(context, args) {
	context = context || window
	args = args ? args : []

	const fn = Symbol()
	context.fn = this
	const result = context.fn(...args)

	delete context.fn
	return result
}
最后更新时间: 2019-8-9 10:54:23