llamar, aplicar, vincular código escrito a mano

Llamar, aplicar y vincular son todos los problemas de cambiar este punto. Apunte esto en
el método al primer parámetro en la llamada. Cuando el primer parámetro es nulo o indefinido, apunta a la ventana por defecto;
después del primer parámetro en la llamada, se debe pasar La lista de parámetros del método.

Aplicar es similar a llamar, pero la diferencia radica en la forma inconsistente de los parámetros pasados ​​al método. Los parámetros pasados ​​al método por aplicar tienen la forma de una matriz.

Cuando llaman y aplican el cambio de este punto del
método, ejecutarán el método al mismo tiempo; bind no ejecuta el método, pero devuelve el nuevo método después de cambiar este punto.

Código de llamada escrito a mano

function myCall(fn,thisObj,...args){
    
    
	thisObj = thisObj?thisObj:window
	thisObj.fn = fn
	let result = thisObj.fn(...args)
	delete thisObj.fn
	return result
}

Código de aplicación escrito a mano

args: es una matriz

function myApply(fn,thisObj,args){
    
    
	thisObj = thisObj?thisObj:window
	thisObj.fn = fn
	let result = thisObj.fn(...args)
	delete thisObj.fn
	return result
}

Código de vinculación escrito a mano

function myBind(fn,thisObj,...args){
    
    
	return function(...args1){
    
    
		return fn.call(thisObj,...args,...args1)
	}
}

Supongo que te gusta

Origin blog.csdn.net/rraxx/article/details/114992596
Recomendado
Clasificación