javascript - 对象内部定义的函数没有返回值?

标签 javascript object

我试图返回对象内部元素的名称。第二个元素是函数 getBook()应该返回书名,但我得到 undefined在我的控制台中。我定义了第二个变量 get name ,它引用对象内部的函数。我不确定是否可以使用 return this.element。如果有人能解释为什么我的代码失败,我将不胜感激。谢谢。

var books = { 
    name: 'Goodnight Moon', 
    getBook() { 
        return this.name; 
    } 
}; 

var getName = books.getBook; 
console.log(getName());

最佳答案

您需要bind()书籍中的 getName 函数表达式。否则 this 的上下文将引用 window 对象:

var books = {
  name: 'Goodnight Moon',
  getBook() {
    return this.name;
  }
};

var getName = books.getBook.bind(books);
console.log(getName());

关于javascript - 对象内部定义的函数没有返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47877761/

相关文章:

javascript - XML 到 JSON javascript 函数不起作用

java - 如何在main方法中从另一个类创建List对象?

javascript - 如何在 JavaScript 中从键值对对象创建单个对象?

java - Java 中类的作用

c - 这些是指针左值吗?

javascript - 使用ExternalInterface和IE从JavaScript获取Flash中的当前URL

javascript - 独立作用域+绑定(bind)名称和仅在 AngularJS 中的独立作用域之间的区别

javascript - 如何将 FileSystemFileEntry.file 包装到返回 Observable 的函数中?

javascript - KnockOut JS 中的列表未更新

java - 扩展对象隐式