2017-09-06 3 views
5

アンダースコアの_.now方法がちょうどnew Date().getTime()よりも速いのが不思議です。 私はgithubコードベースで以下を参照しています。Underscroreの現在の方法はどのように高速ですか?

// A (possibly faster) way to get the current timestamp as an integer. 
_.now = Date.now || function() { 
    return new Date().getTime(); 
}; 

誰かがここで起こっていることを説明できますか?

+0

矢印の機能を持つ:あなたはブラウザのサポートの詳細については、このリンクを参照することができ

Comparison

()=> +新しいDate() ' ;-)しかし、私は* Date.now *をサポートしない矢印関数をサポートしていない何かを推測する... – RobG

答えて

3

Date.nowによって提供される利点を使用して、new Dateオブジェクトを構築する必要はありません。その唯一の問題はブラウザのサポートだったので、それにはフォールバックが含まれていました。また、ポリフィルを含めるだけの方が良いかもしれません。独自のヘルパー機能を使用する代わりに、ポリフィルを含めるだけでよいのです。

+1

アンダースコア、lodash、jQueryのようなライブラリは、正規のJS環境に変更を加えず、彼ら自身の名前空間で。 – Barmar

+0

'Array.prototype.forEach'ポリフィルの代わりに' $ .each() 'に似ています。 – Barmar

+0

@Barmarはい、そのアプローチにはいくつかの明白な利点があります。私は、標準メソッドよりも* * *を提供するコア機能のみを使用し、ネームスペースを公開するのではなく、内部互換レイヤーを内部に保持することを望んでいます(もちろん明示的なライブラリ目的でない限り)。 – Bergi

0

Date.nowを使用することで、Objectを構築する必要はありません。しかし、IE <ではサポートされていません。この場合、古いDate()。getTime関数が使用されます。あなたは `_.now = Date.now ||を取得http://caniuse.com/#search=Date.now

関連する問題