在ES6中调用对象中的函数

时间:2016-05-03 23:51:37

标签: ecmascript-6

尝试ES6并遇到了这个例子:

var bob = {
      _name: "Bob",
      _friends: ["Pete", "Joe", "Larry"],
      printFriends() {
        this._friends.forEach(f =>
          console.log(this._name + " knows " + f));
      }
    }

控制台记录bob.printFriends()未定义。

2 个答案:

答案 0 :(得分:1)

您的代码

var bob = {
  _name: "Bob",
  _friends: ["Pete", "Joe", "Larry"],
  printFriends() {
    this._friends.forEach(f =>
      console.log(this._name + " knows " + f));
  }
}
bob.printFriends();

输出

"Bob knows Pete"
"Bob knows Joe"
"Bob knows Larry"
=> undefined

您看到undefined返回值的原因是因为printFriends没有return声明。

答案 1 :(得分:0)

这对我有用。请看这个小提琴并检查控制台。您可能没有正确配置转换器。

https://jsfiddle.net/e7rb9e4o/

bob.printFriends();

输出:

Bob knows Pete
Bob knows Joe
Bob knows Larry