我是一个比初学者稍微多一点的 JavaScript。
在阅读EventEmitter的源代码时,我偶然发现了这个有趣且对我来说优雅的函数:
// alias a method while keeping the correct context
function alias(name) {
return function aliasClosure() {
return this[name].apply(this, arguments);
};
}
我有两个主要问题:
第一:为什么是aliasClosure
命名函数?除了清晰度之外,它还有其他用途吗?还有,真的是闭包吗?对我来说,它看起来就像一个半匿名函数。
第二:我像这样重写了这个函数:
function alias2(name) {
return this[name].bind(this);
}
是否等效?我认为应该,因为this
上下文是相同的,并且在两个版本中都保留了。
有理由偏爱其中一个吗?