请帮我修复脚本的工作。
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)
为true
,new KittyFactory(kitty)
将是一个空构造函数(函数本身),而不是我想要的巨大FALSE
。
我的问题基本上是我可以把我的小猫阵列两个小猫用相同的颜色。 :(让我伤心。
请问我该如何使用它?
答案 0 :(得分:2)
您无法从构造函数返回false
。使用new
运算符调用函数时,返回值必须是对象。如果您尝试返回其他内容,则其行为就像没有return
语句一样(默认情况下会返回新构造的对象)。