アンダースコアの_.invoke関数を実装しようとしています。これは、次のようになります。リストの各値に対してmethodNameで指定されたメソッドを呼び出します。呼び出すために渡された余分な引数は、メソッド呼び出しに転送されます。ここアンダースコアのインボーク関数を実装するときに.applyが必要な理由を理解しようとしています
と実装です:
_.invoke = function(list, methodName, arguments) {
return _.map(collection, function(item){
if (typeof methodName === 'string'){
return item[methodName](arguments);
} else {
return methodName.apply(item, arguments);
}
});
};
私は現在は.callと.apply方法について学んでいると私はこのケースで.apply使用する必要がある理由を理解していません。適用と単純書き込みの使用の違いは何ですか?return functionOrKey(item, args)
?
まずとして呼出し関数で現在のコンテキストを使用=
ランstrictモードではnameが無効です。 – Bergi