2012-09-18 34 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> 
相关问题