我正在尝试返回对象内部元素的名称。第二个元素是函数getBook()
,它应该返回书的名称但我在控制台中得到undefined
。我已经定义了第二个变量get name,它引用了对象内部的函数。我不确定我是否可以使用return this.element。如果有人能解释我的代码失败的原因,我将不胜感激。谢谢。
var books = {
name: 'Goodnight Moon',
getBook() {
return this.name;
}
};
var getName = books.getBook;
console.log(getName());
答案 0 :(得分:2)
您需要将bind()本书添加到getName函数表达式中。否则this
的上下文将引用window
对象:
var books = {
name: 'Goodnight Moon',
getBook() {
return this.name;
}
};
var getName = books.getBook.bind(books);
console.log(getName());

答案 1 :(得分:0)
当然你可以做到
// same object definition
var books = {
name: 'Goodnight Moon',
getBook() {
return this.name;
}
};
// but call:
books.getBook();
console.log(books.getBook());