JS对象:强制属性值为某种类型

时间:2017-09-14 20:56:13

标签: javascript javascript-objects

有没有办法确保属性的输入是某种类型?在这个例子中,我想检查新狮子是否有鬃毛。在创建新的狮子对象时,有没有办法确保'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);

2 个答案:

答案 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
  }
};