这个JS程序怎么了?

时间:2017-07-23 12:24:08

标签: javascript

var comments = {};
comments.data = ["Good!", "Bye", "I hate it..."];
comments.print = function() {
    this.data.forEach(function(el) {
    console.log(comments.print()); 
    });
}

应该打印评论中的数据(“好!”,“再见”,“我讨厌它......”)。评论是一个对象。我本可以在花括号中定义函数,但我想用不同的语法来实现它。

2 个答案:

答案 0 :(得分:1)

它以递归方式运行。它自称。所以它无限。用el

替换comments.print()

试试这个:

var comments = {};
comments.data = ["Good!", "Bye", "I hate it..."];
comments.print = function() {
    comments.data.forEach(function(el) {
    console.log(el); 
    });
}
comments.print();

答案 1 :(得分:0)

您正在将print()调用到print()函数中,因此这可能会导致无限循环。我想在每个循环中你要记录“Good”,然后是“Bye”,然后是“我讨厌它”,所以你只需要调用el而不是注释它是整个对象吗?

var comments = {};
comments.data = ["Good!", "Bye", "I hate it..."];
comments.print = function() {
    this.data.forEach(function(el) {
      console.log(el); 
    });
}

comments.print() ;