2017-09-14 13 views
0

プロパティの入力が特定のタイプであることを確認する方法はありますか?この例では、新しいライオンがかみついているかどうかを確認したいと思います。新しいLionオブジェクトを作成するときに、 'mane'値がブール値であることを確認する方法はありますか?JSオブジェクト:プロパティの値を特定のタイプに強制する

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

をあなたはthis.mane – marvel308

+0

を初期化しながら、あなたのプロジェクトに活字を追加し、transpile時間を得ることができtypeofを確認することができますあなたのタイプが一致しない場合のエラー。または、それを使用するときは、キャストを確実にするためにの前に付けてください。 – rjustin

+0

その変数を変更するsetメソッドを作成し、そのメソッドでデータの型をチェックします – Frankusky

答えて

0

あなたはそれが常にJavascriptをtruthy/falsey値とに基づいて、偽/出力本当のたてがみをguarantreeますBoolean(mane)を使用して、ブール値になることです何でもたてがみ強制可能性はbooleanです。

あなたは、新しいオブジェクトの作成時にそのチェックを実行する typeof演算子を使用することができます
this.mane = Boolean(mane); 
+0

私は '!! mane'はこれを行うもっと慣れた方法だと思います。関数やボックスをオブジェクトに呼び出さない。 – Barmar

+0

出力は同じですが、JSを慣れていない人にとっては確かです!変数名の前にはおそらくあまり読みにくくありません。 – AHB

+0

この質問にリンクできます:https://stackoverflow.com/questions/784929/what-is-the-not-not-operator-in-javascript/784946#784946 – Barmar

0

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 
    } 
}; 
+0

これは私のために今のところうまくいくようです(まだ初心者レベルです)。ありがとう@nvioli! – Vincent

関連する問題