エラーにならない

var test = {}; 
test.p = function(){
  var hoge = {v : 1, d : 2};
  return hoge;
}

エラー

var test = {}; 
test[p] = function(){
  var hoge = {v : 1, d : 2};
  return hoge;
}

Uncaught ReferenceError: p is not defined(…)


エラーにならない

var test = {}; 
var p;
test[p] = function(){
  var hoge = {v : 1, d : 2};
  return hoge;
}

質問
・この違いはどうして生じるのでしょうか?