Javascript 对象道具

Javascript object props

JavaScript中用于访问对象属性的syntax是:

object.propertyobject["property"]object[property]

我在 freeCodeCamp 上尝试这个 lesson

var myObj = { gift: "pony", pet: "kitten", bed: "sleigh" };

function checkObj(checkProp) {
  if( myObj.hasOwnProperty(checkProp) )
    return myObj[checkProp];

  return "Not Found";
}

checkObj("gift");

... 控制台显示带有 object[property] 语法的预期道具,否则显示 undefined。这是为什么?

因为只有 object[property] 允许您使用动态 属性(保存在变量中,在您的特定情况下 - checkProp)。

其他人 - object.propertyobject["property"] 直接 引用到名为 property 的道具,并且由于 没有'tproperty 这样的道具,你会收到 undefined.

由于 属性 是一个变量,要动态访问对象 属性,您必须使用 Bracket ([]) notation。否则它总是给你undefined

var myObj = { gift: "pony", pet: "kitten", bed: "sleigh" };

function checkObj(checkProp) {
  if( myObj.hasOwnProperty(checkProp) )
    return myObj[checkProp];

  return "Not Found";
}

console.log(checkObj("gift"));
console.log(checkObj("g"));