在创建对象文字后添加其他功能

时间:2016-05-05 05:19:59

标签: javascript function methods object-literal

所以我想知道这是否是向通过对象文字创建的对象添加函数的正确方法。

var person = {
  firstname: "default",
  lastname: "default",
  greet: function () {
    return "hi " + this.firstname;
  }
}

var me = Object.create(person);

me.myFunction = function() {
  return console.log("meow");
};

console.log(me.myFunction());

然而它在喵喵之后会返回一个未定义的,有什么理由会这样做吗?

4 个答案:

答案 0 :(得分:1)

写作时

return console.log("meow");

你没有返回“喵”,而是console.log的返回值,这是未定义的。像这样修改代码:

me.myFunction = function() {
  return "meow";
};

console.log(me.myFunction());

答案 1 :(得分:0)

console.log()不会返回任何值,因此该函数的“后备”值为undefined

由于您返回console.log的返回值并再次记录,因此获得undefined

修改对象或原型时,所有这些都无所事事

答案 2 :(得分:0)

您应该在meow内返回myFunction

var person = {
  firstname: "default",
  lastname: "default",
  greet: function () {
    return "hi " + this.firstname;
  }
}

var me = Object.create(person);

me.myFunction = function() {
  return "meow";
};

document.write(me.myFunction());

答案 3 :(得分:0)

var person = {
  firstname: "default",
  lastname: "default",
  greet: function () {
    return "hi " + this.firstname;
  }
}

var me = Object.create(person);

me.myFunction = function() {
  return console.log("meow");
};

console.log(me.myFunction());

为什么你返回console.log()它什么都不返回