有没有办法确保属性的输入是某种类型?在这个例子中,我想检查新狮子是否有鬃毛。在创建新的狮子对象时,有没有办法确保'mane'值是布尔值?
function Lion(height, weight, fur, purr, mane) {
Cat.call(this, name, height, weight, fur, purr);
this.name = 'Lion';
this.mane = mane;
};
var lion1 = new Lion('100cm', '250kg', 'beige', 'ROAAAAAAAAR!', true);
答案 0 :(得分:0)
你可以使用Boolean(mane)
迫使任何鬃毛成为布尔值,它将根据Javascript truthy / falsey值输出true / false,并且总是guarantree鬃毛是布尔值。
this.mane = Boolean(mane);
答案 1 :(得分:0)
您可以使用typeof
运算符在创建新对象时执行该检查:
function Lion(height, weight, fur, purr, mane) {
Cat.call(this, name, height, weight, fur, purr);
this.name = 'Lion';
if (typeof mane === "boolean") {
this.mane = mane;
} else {
throw "type error" // or do whatever
}
};