私は JavaScript の初心者です。
EventEmitterのソースを読んでいるときに、この興味深い、そして私にとってエレガントな関数に出くわしました。
// alias a method while keeping the correct context
function alias(name) {
return function aliasClosure() {
return this[name].apply(this, arguments);
};
}
主な質問が 2 つあります。
最初: なぜ名前付き関数なaliasClosure
のですか? 明晰さ以外の意味で役に立ちますか? また、本当に閉鎖ですか?私には、半匿名関数のように見えます。
2番目:この関数を次のように書き直しました:
function alias2(name) {
return this[name].bind(this);
}
それは同等ですか?this
コンテキストは同じで、両方のバージョンで保持されているため、そうすべきだと思います。
どちらかを優先する理由はありますか?