请帮我解决我的脚本的工作。对象在JS中返回其构造函数而不是false。为什么?
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
我想要什么。
我的问题是basicly我可以把我的小猫阵列中的两个小猫用相同的颜色。 :(让我伤心。
你能帮助我,我应该请如何使用它?
你为什么要使用一个构造函数在这里吗?你想返回一个普通的功能东西 - 你没有任何构造对象 – pimvdb
因为小猫会后与他们绞玩 –
也许我错过了一些。东西,但'kitty'被传递给构造函数。所以构造函数不会构造任何东西,因为kitty对象已经可用。听起来你只是想删除'新'。 – pimvdb