使用Javascript中的函数调用向对象添加属性

时间:2014-05-03 10:49:06

标签: javascript

控制台日志给我“未定义”。我找不到使用“addBook”函数在myBox对象中添加对象属性的方法。也许我只是说错了,但我认为这应该是正确的方法。

  function addBook (box, name, writer) {
  box["# of Books"]++;
  box["book" + box["# of Books"]] = {title: name, author: writer};
  }

  var myBox = {
  height: 10,
  width:50,
  volume:400
  };


  addBook(myBox, "Javascript Ninja", "Ninja");
  console.log(myBox.book1.title);

1 个答案:

答案 0 :(得分:1)

问题是你试图增加一个未定义的值,因此得到NaN

只需初始化您的计数器:

 function addBook (box, name, writer) {
  box["# of Books"]++;
  box["book" + box["# of Books"]] = {title: name, author: writer};
  }

  var myBox = {
  height: 10,
  width:50,
  volume:400
  };
  myBox["# of Books"]=0; // <-- there


  addBook(myBox, "Javascript Ninja", "Ninja");
  console.log(myBox.book1.title);

遇到这样的问题时,您应该先自己调试,逐步查看值。阅读Debugging JavaScript