2012-09-18 53 views
0

我嘗試向下面的構造函數發送名稱和顏色。方法this.whatAreYou()應該在調用時檢索這些字符串。如何從方法返回一個字符串?

我想在屏幕上顯示它。

我有以下代碼:

function Gadget(name, color) { 
    this.name = name; 
    this.color = color; 
    this.whatAreYou = function() { 
     return 'I am a ' + this.name+ ' ' + this.color; 
    }; 
} 

string = Gadget(grass, green); 
alert(string);​ 

但警報不起作用。我怎樣才能達到我想要的行爲?

回答

2

您的小工具不是字符串。它只是一個返回字符串的函數。

由於您似乎嘗試創建小工具類的實例,因此需要使用new運算符。

如果grass和​​不是預定義的變量而是字符串,則需要將它們放在引號之間。

嘗試

var g = new Gadget('grass', 'green'); 
alert(g.whatAreYou());​ 
+0

非常感謝怎麼樣'Gadget.prototype = { 價格:100, 等級:3, 的getInfo:函數(){ 回報 '評價:' + this.rating + '價格爲:' +這個價格; } }; var gadget = new Gadget(); var string = gadget.getInfo(); alert(string); ' – yossi

+0

似乎很好(很難閱讀評論)。使用原型是一個好主意(我想你已經在你的問題中定義了構造函數)。 –

1

你需要使用new運營商打造的Gadget一個實例。

var gadget = new Gadget('grass', 'green'); 
var string = gadget.whatAreYou(); 
alert(string); 
1
function Gadget(name, color) { 
    this.name = name; 
    this.color = color; 
    this.whatAreYou = function() { 
     return 'I am a ' + this.name+ ' ' + this.color; 
    }; 
return this.whatAreYou; 
} 

string = Gadget(grass, green); 
alert(string);​ 
1

你有幾件事情錯了,包括突入小工具的參數不加引號。你永遠不會調用whatAreYou()。

<script type="text/javascript"> 

    function Gadget(name, color) { 
     this.name = name; 
     this.color = color; 
     this.whatAreYou = function() { 
      return 'I am a ' + this.name + ' ' + this.color; 
     }; 
     return whatAreYou(); 
    } 

    alert(Gadget('grass', 'green')); 


</script> 
相關問題