财产名称丢失了吗?

时间:2018-08-04 00:34:48

标签: javascript object properties

我正在研究预训练营编码问题。我将一个对象(ourDog)和一个键(可靠地)传递给一个函数,该函数创建一个新属性(键:值对)并为该键分配一个true值。 查看输出,添加了属性,但是该键没有分配的值“ friendly”,它具有键的参数名称。我期望将key:value对设为(友好:true)。这是代码。

var ourDog = {
  "name": "Camper",
  "legs": 4,
  "tails": 1,
  "friends": ["everything!"]
};


function addProperty(anObject, key) {

  anObject.key = true;

  return anObject;
};


var output = addProperty(ourDog, 'friendly');

console.log(output);
{name: "Camper", legs: 4, tails: 1, friends: Array(1), key: true}

1 个答案:

答案 0 :(得分:0)

将其从点表示法更改为方括号。

function addProperty(anObject, key) {

  anObject[key] = true;

  return anObject;
};

当属性是有效的JavaScript标识符时,点符号用于访问对象的属性。由于“ friendly”是字符串,因此您需要使用方括号。