(0, fn)(args)
应该是相当于fn(args)
的,前者目的何在?
自问自答了
我举的例子有问题,把它改为(0, foo.fn)(args)
更贴切
它的目的是切断fn中的this于foo的绑定关系,举个例子
window.name = 'Gina';
const person = {
name: 'Alice',
getName() {
console.log(`My name is ${this.name}`);
},
};
person.getName(); // My name is Alice
(0, person.getName)(); // My name is Gina
原理是,逗号表达式表示先执行左边,在执行右边,最终返回右边,(0, person.getName)
相当于返回了person.getName
的引用,相当于
const getName = person.getName;
getName(); // My name is Gina
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
这两个是有区别的,你试试:
可以看看我之前的这个回答 https://segmentfault.com/q/10...