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);​

但是警报不起作用。我怎样才能达到我想要的行为?

4

4 回答 4

2

您的小工具不是字符串。它只包含一个返回字符串的函数。

当您似乎试图创建 Gadget 类的实例时,您需要使用new运算符。

如果grass并且green不是预定义变量而是字符串,则需要将它们放在引号之间。

尝试

var g = new Gadget('grass', 'green');
alert(g.whatAreYou());​
于 2012-09-18T16:37:41.487 回答
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>
于 2012-09-18T16:45:35.573 回答
1

您需要创建一个Gadget使用new运算符的实例。

var gadget = new Gadget('grass', 'green');
var string = gadget.whatAreYou();
alert(string);
于 2012-09-18T16:38:23.553 回答
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);​
于 2012-09-18T16:42:57.267 回答