当前位置: 代码迷 >> 综合 >> function apply()与call()
  详细解决方案

function apply()与call()

热度:75   发布时间:2023-11-18 05:58:29.0

apply:调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.apply(A, arguments);即A对象应用B对象的方法。

call:调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.call(A, args1,args2);即A对象调用B对象的方法。

都“可以用来代替另一个对象调用一个方法,将一个函数的对象上下文从初始的上下文改变为由thisObj指定的新对象”。

 

实际上,apply和call的功能是一样的,只是传入的参数列表形式不同。

function add (a, b) {console.log(this)return a + b
}
function sub (a, b) {console.log(this)return a - b
}
var a1 = add.apply(sub, [4, 2])// 执行add函数,函数内部this指向sub 
//var a1 = add.call(sub,4,2); //同上
var a2 = sub.apply(add, [4, 2])// 执行sub函数,函数内部this指向addalert(a1) //6
alert(a2) //2
  相关解决方案