call 和 apply
调用一个对象的一个方法,用另一个对象替换当前对象。
相同点:都是改变this指向
区别:传参不一样,call传的是按照形参的个数传进去,apply传进去的是数组。
callee
是arguments.callee ->指向自身引用,最典型的莫过于
function factorial(num){
if (num <=1) {
return 1;
} else {
return num * arguments.callee(num-1);
}
}
当函数没有名字的时候指向自身。
就像你不告诉别人名字,但是你说:“我”。那么,大家都知道是指你自己。
caller
caller返回一个对函数的引用,该函数调用了当前函数。
简单说就是,那个函数调用了你,你就返回那个函数的引用。
比如你妈妈叫你,那就返回你妈妈这个引用。