JavaScript对象道具

时间:2018-12-14 16:47:01

标签: javascript object syntax properties undefined

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。为什么会这样?

2 个答案:

答案 0 :(得分:3)

因为只有+--------+-----------+-------------+------------------+-----------------+ | LandID | LandUnits | LandLineNum | TaxableLandValue | TaxableUseValue | +--------+-----------+-------------+------------------+-----------------+ | 36517 | 1 | 1 | 20528 | 20528 | | 36516 | 73 | 2 | 260560 | 57541 | | 36514 | 5 | 3 | 18484 | 3068 | | 36513 | 25 | 4 | 20638 | 6500 | | 36515 | 95 | 5 | 78530 | 19977 | | 36512 | 19 | 6 | 8129 | 1281 | +--------+-----------+-------------+------------------+-----------------+ 允许您使用动态属性(在特定情况下,变量保存在变量中,object[property])。

其他人-checkPropobject.property直接将推荐到名为object["property"]的道具,并且由于没有这样的道具作为property的道具,您会收到property

答案 1 :(得分:1)

由于 property 是变量,因此必须动态使用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"));