0

请帮助我修复我的脚本的工作。

function KittyFactory(kitty) // kitty constructor
{
    for (x in kitties)
    {
        if (kitties[x].color == kitty.color)
        {return false;} // if already in the array return false
    }
    return kitty; // else return the object itself
}

function iPreferDifferentKitties(kitty)
{
    if (new KittyFactory(kitty))
    {
        kitties[x].push(kitty);
    }
}

但是如果这将(kitties[x].color == kitty.color)是一个空的构造函数(函数本身),而不是我想要的一个巨大的。truenew KittyFactory(kitty)FALSE

我的问题基本上是我可以在我的小猫阵列中放置两只相同颜色的小猫。:( 让我伤心。

你能帮我请我应该如何使用它?

4

1 回答 1

2

您不能false从构造函数返回。使用new运算符调用函数时,返回值必须是对象。如果您尝试返回其他内容,它的行为就好像没有return语句(并且默认返回新构造的对象)。

于 2012-11-26T20:43:13.263 回答