call函数心得

今天深深受项目组一老大哥深深的鄙视了一把,在用call的时候,因不理解导致函数之间无法正常调用

function A(){
  B.call(XXX,a,b,c);
};
function B(a,b,c){
};

这里的XXX网上多数传递的是函数句柄,一直以为就是函数句柄的意思,其实它的实际作用是作用域。如果指定有误,将导致某些情形下的属性不能相互调用,很少头疼。简单的说这个XXX代表被call函数的第一个this指向,可指定任意已初始化可指向到的作用域,达到在内部访问其它属性的作用。
在使用prototype为对象赋值属性时,对象内部属性之间调用运用这个将非常方便,避免了通过prototype附加的属性,必须实例化,才可实现统一对象不同prototype属性或方法之间的调用。
时间紧迫,未附Demo,后期续补。。。

原文地址:https://www.cnblogs.com/jyjin/p/4180371.html