なぜ最初は機能し、後者は機能しないのですか?? * 後者のケースでは、cats オブジェクト プロパティにアクセスするために省略形を使用したという小さな違いにすぎません。「プロパティの名前が有効な変数名である場合、スペースや記号が含まれておらず、数字で始まっていない場合」に違いはないことを読みました。
//this works
var cats = {Spot:true};
function addCat (name) { cats[name] = true; }
addCat("white");
console.log ("white" in cats); //true
console.log (cats.white); //true
//this doesn't work
var cats = {Spot:true};
function addCat (name) { cats.name = true; }
addCat("white");
console.log ("white" in cats); //false
console.log (cats.white); //undefined