toString方法打印数组而不是字符串

时间:2016-03-07 15:55:36

标签: javascript arrays tostring

我是编程和编写javascript类的新手,并且在使用toString方法时,我的赋值继续打印数组而不是字符串。我一直无法找到相关信息来帮助解决这个问题。作业是:

创建一个名为World的构造函数(构造函数应该用大写字母命名)。

World对象应该有一个名为plan的属性,它是一个字符串数组。

为World创建一个原型方法,打印出数组的值,每个元素之间有换行符(换行符是\ n)

创建变量世界的实例并调用其toString方法。

这是我到目前为止的代码:

function World(plan){
  this.plan = plan;  
}

var plan = ["––––––––––",
            "|   _    |",
            "|  |     |",
            "|__|     |",
            "| ___|   |",
            "––––––––––"];

var funWorld = new World(plan);

World.prototype.plan = function() {
    console.log(this.plan + "\n");
    return this;
};

World.prototype.toString = function() {
    return(this.plan);
};
console.log(funWorld.toString());

这就是印刷:

[
0:  "––––––––––"
1:  "|   _    |"
2:  "|  |     |"
3:  "|__|     |"
4:  "| ___|   |"
5:  "––––––––––"
]

我想我问的是我哪里出错了?

1 个答案:

答案 0 :(得分:3)

您正在使用同名的实例属性隐藏原型方法 <a onclick="window.open('/admin/posts/post/{{post.pk}}/', 'newwindow', 'width=auto, height=auto'); return false;">

您的plan方法只返回实例属性,即数组。

没有真正看到单独的计划方法的意义 - 您可以在toString内包含逻辑。

&#13;
&#13;
toString
&#13;
&#13;
&#13;