2016-03-07 119 views
-2

我是新來編程,並採取一個介紹編程JavaScript類和我的任務不斷通過toString方法時,打印數組而不是字符串。我一直無法找到相關信息來幫助解決此問題。該任務是:toString方法打印陣列,而不是字符串

創建一個名爲世界(構造函數應該用大寫字母來命名)構造函數。

World對象應該有一個名爲plan的屬性,它是一個字符串數組。

創建世界原型方法,其打印出數組的值,與每個元素之間換行符(線斷開字符爲\ 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

您的toString()函數只是返回'this.plan'。你在哪裏把它轉換成字符串? –

+0

我對此知之甚少,甚至不知道我是否正確地做了這件事,所以我認爲我錯過了將其轉換爲字符串的部分。我的導師還沒有提供太多的幫助,但我做錯了什麼,這就是爲什麼我在這裏尋求幫助。 – user3644882

+0

JavaScript有2種方法可以幫助你。嘗試join()和toString()方法。 –

回答

3

您陰影原型方法​​,具有相同名稱的實例屬性

toString你方法簡單地返回實例屬性,它是一個數組。

沒有真正看到一個單獨的點計劃方法 - 你可以只包含toString內的邏輯。

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

 
World.prototype.toString = function() { 
 
    return this.plan.join('\n'); 
 
}; 
 

 
var world = new World(["––––––––––", 
 
         "| _ |", 
 
         "| |  |", 
 
         "|__|  |", 
 
         "| ___| |", 
 
         "––––––––––"]); 
 
         
 
console.log(world.toString());

相關問題