0

JS Object コンストラクターを作成しようとしていますが、オブジェクトのプロパティの 1 つをブール演算で宣言したいと考えています。どういうわけか私はこれを間違っています - アドバイスしてください!

ありがとう!交流

function Student(gender, name, id, age, likes) {
this.gender = gender;
this.name = name;
this.id = id;
this.age = Boolean () {
    var age = x;
    if (age >= 21) {
    return "adult";
    } else {
    return "minor";
  }     
  };
this.likes = likes;
 }

window.onload = init;

function init() {
var jessica = new Student("female", "Jessica", 12, 21, ["butterflies", "flowers", "music"]);
var jessicaJSON = JSON.stringify(jessica);
console.log(jessicaJSON);

var anotherJessica = JSON.parse(jessicaJSON);
console.log(anotherJessica);

}
4

4 に答える 4

2

これがあなたのために修正された学生機能です。「Boolean() {}」の代わりに 3 項 if ステートメントを使用します。これは実際には有効な Javascript コードではありません + ブール値は true または false のいずれかであり、文字列であり、実際には一致しない「adult」または「minor」を返しましたとにかくブール型。

function Student(gender, name, id, age, likes) {
  this.gender = gender;
  this.name = name;
  this.id = id;
  this.likes = likes;
  this.age = (age >= 21 ? "adult" : "minor");
} 
于 2013-01-12T09:39:49.183 に答える
1

それが必要だと思います:

function Student(gender, name, id, age, likes) {
  this.gender = gender;
  this.name = name;
  this.id = id;
  this.age = (age >= 21) ? "adult" : "minor";
  this.likes = likes;
}

var jessica = new Student("female", "Jessica", 12, 21, ["butterflies", "flowers", "music"]);
console.log(jessica.age); //adult

ここでは、三項条件演算子を使用します: condition ? value_if_true : value_if_false.

この場合、条件はage >= 21であり、true の場合の値は で"adult"あり、false の場合の値は です"minor"

于 2013-01-12T09:40:23.893 に答える
0
function Student(gender, name, id, age, likes) {
    this.gender = gender;
    this.name = name;
    this.id = id;
    this.age = (age >= 21) ? "adult":"minor";
    this.likes = likes;
}

例: http://jsfiddle.net/av5ym/1/

于 2013-01-12T09:40:58.247 に答える
0

他の人はあなたが何をすべきかを教えてくれましたが、ブール三項以上が必要な場合に備えて、コードの精神に沿った答えを次に示します。

this.age = (function () {
    if (age >= 21) {
        return "adult";
    } else {
        return "minor";
    }     
}();
于 2013-01-12T09:45:09.777 に答える