function multiMax(multi){
// Make an array of all but the first argument
var allButFirst = Array().slice.call( arguments, 1 );
// Find the largest number in that array of arguments
var largestAllButFirst = Math.max.apply( Math, allButFirst );
// Return the multiplied result
return multi * largestAllButFirst;
}
assert( multiMax(3, 1, 2, 3) == 9, "3*3=9 (First arg, by largest.)" );
http://ejohn.org/apps/learn/#47から
誰にでも2つ質問があります。
- Math().max ではなく Array().slice を使用する必要があるのはなぜですか。
- なぜ Array.prototype.slice ではなく Array().slice を使用するのですか (Array.prototype.slice が機能することに気付きましたが、このインスタンスだけでなく、なぜ一方を他方よりも優先して使用するのかを理解しようとしています) 、しかしいずれにせよ)
ありがとうございました。