配列の最大値を取得するように言われたら、次のようにします。
var nums = [66,3,8,213,965,1,453];
Math.max.apply(Math, nums);
もちろん、次のこともできます: nums.sort(function(a, b){ return a - b}.pop(nums.length);
しかし、私は正直でなければなりません。.apply(Math,nums) を使用して、なぜそれが機能するのかを知る必要があります。私がこれをやった場合:
Math.max(nums);
それはうまくいきません。
apply を使用して、Math を this として渡し、配列には nums を渡します。しかし、前者が機能し、後者が機能しない「なぜ」の複雑さを知りたいです。どんな魔法が起きている?
私が頭を悩ませていない基本的なことがあります。「電話して申し込む」についてたくさん読んだことがありますが、多くの場合、上記のようなクールなトリックがいくつかあり、ここでもっと深い何かが欠けているように感じます.