使用 call()方法调用函数 和 将作用域 this 直接作参数传入有什么区别?
資深大佬 : gromit1337 0
小程序里的一个封装方法需要调用页面的组件, 要用到 this.selectComponent().doThing() ,这里引起了标题的争议了
大佬有話說 (17)
示例:
let obj = Object.create(null);
obj.a = 1;
Object.prototype.hasOwnProperty.call(obj,”a”); // true
如果是这样,用 call
(function selectComponent () {}).call(obj);
前者可能会覆盖已有的同名方法,而且可能忘记 delete 从而影响 Object.keys 等方法的结果。call 没有那么地“侵入性”