2016-03-25 12 views
2

私のチームの開発者は、ドット記法を使ってObjectプロパティにアクセスする方がブラケット記法よりも高速だと述べました。例:この場合オブジェクトのプロパティにアクセスするためのブラケット表記はピリオド表記よりも遅いですか?

var sample = { name: 'First Name' } 
var nameBracket = sample['name'] 
var namePeriod = sample.name 

、彼らの信念はnamePeriodの割り当てがnameBracketより速いだろうということでした。

これは本当ですか?もしそうなら、なぜですか?そうでない場合は、どうしてですか?

関連:この仮説または類似の質問をテストして、JSの機能速度を決定する方法はありますか。

答えて

4

異なるアプローチの速度をテストしようとすると、defactoツールはjsperf.comと思われます。

誰かが既にこれに疑問を持ち、テストを作成しました。

http://jsperf.com/dot-notation-vs-square-bracket-notation

結果はほぼ同じように見えます。遅いの原因は、ブラケットの内容が変数であるときです。コンパイラは、 "ああ、['foo']は.fooと同じです!

+1

または、内容が文字列だけではない場合、obj [function(){for(var start =(new Date).getTime();(new Date).getTime() Paulpro

+0

ああ、あなたは私の意味を知っています:P – Stephen