0

さて、2 つのオブジェクトがあるとします:gregstacy. 二人とも人です。グレッグのオブジェクトは次のようになります。

var greg = {
  name: "Greg",
  job: "doctor",
  age: 45
}

そしてステイシーはこんな感じです:

var stacy = {
  name: "Stacy",
  age: 42
}

誰かが Stacy のjob所有物にアクセスしようとしたとき、それを直接彼女として入力せずに、どうすれば「Unemployed」を返すことができjobますか? プロトタイプを使用しないソリューションが必要であり、関数を使用してオブジェクトのすべてのプロパティにアクセスすることは避けたいと考えています。

文脈のために: 私はこれを、Rails のサーバー側のものと同様に、Ajax 自動読み込みシステムに使用しています。

4

4 に答える 4

1

typeof で明示的なチェックを使用できます。

if (typeof obj.job === "undefined") { ..

またはもっと簡単に:

console.log(obj.job || "Unemployed")
于 2014-08-07T20:31:22.810 に答える
0

間違ったアーキテクチャ!

function Person(name, job, age) {
    this.name = name ? name : "no name";
    this.job = job ? job : "no job";
    this.age = age ? age : -1:
}
var greg = new Person("Greg", "doctor", 45);
var stacy = new Person("Stacy", null, 42);

console.log(stacy.job);

それとも、すべての人に独自の静的クラスを作成する予定でしたか???

于 2014-08-07T20:36:56.493 に答える