【问题标题】:Javascript object props [duplicate]Javascript对象道具[重复]
【发布时间】:2018-12-14 16:47:00
【问题描述】:

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 否则显示预期的道具。这是为什么呢?

【问题讨论】:

    标签: javascript object syntax properties undefined


    【解决方案1】:

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

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

    【讨论】:

    • 附加的object["proper ty"] 可能包含空格,而object.proper ty 可能没有
    【解决方案2】:

    由于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"));

    【讨论】:

      猜你喜欢
      • 2020-12-24
      • 2013-03-07
      • 2022-11-23
      • 1970-01-01
      • 2022-06-12
      • 2015-12-14
      • 1970-01-01
      • 2014-01-15
      • 1970-01-01
      相关资源
      最近更新 更多