所以我想知道这是否是向通过对象文字创建的对象添加函数的正确方法。
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());
然而它在喵喵之后会返回一个未定义的,有什么理由会这样做吗?
答案 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()它什么都不返回