2017-09-11 5 views
2

私はJavaScriptコースを勉強していますが、私はコンソールにログアウトするときにコードがオブジェクトのプロパティの上にageの値を含むことをどのように知っているのですか?ここでの教訓からのコードは次のとおりです。JavaScriptオブジェクトに変数を作成するとき、新しい変数を追加する場所をコードがどのように認識していますか?

var john = { 
    name: 'John', 
    lastName: 'Smith', 
    yearOfBirth: 1990, 
    job: 'teacher', 
    isMarried: false, 
    family: ['Jane', 'Mark', 'Bob'], 
    calculateAge: function() { 
     this.age = 2016 - this.yearOfBirth; 
    } 
}; 

john.calculateAge(); 
console.log(john); 

私が正しく理解していれば、私はこのラインでage変数を作成します。

this.age = 2016 - this.yearOfBirth; 

私は私のコンソールで見てみると、ageプロパティとその値がありますオブジェクトのプロパティの上で述べた。このプレゼンテーションを決定する要因は何ですか?

+0

のプロパティとして追加されているスニペット 'age'は、それが財産だ、変数ではありません。 – Bergi

+0

Btw、私たちは2017を持っています:-) – Bergi

+0

私はコースが2016年にリリースされたことを知っています。 :-) –

答えて

2

例ではage変数はありません。このライン:

this.age = 2016 - this.yearOfBirth; 

john変数が参照するオブジェクトにプロパティageを追加します。

オブジェクトのプロパティは、になりません。つまり、プログラムの中ではageのプロパティは他のものにはないということです。また、を確認できないことを意味します。for..inのような反復構造を使用する場合は、ageが先頭になります。

私は私のコンソールで見てみると、年齢変数とその値は、オブジェクトのプロパティの上 記載されています。

console.logを使用してオブジェクトを表示すると、アルファベット順にキーを並べ替える書式設定が使用されます。 xgeのように別の名前を使用してみると、下に近いところに出力されることがわかります。

1

は、あなたが見ることができるように、以下のあなたは、変数の年齢を作成し、この

var john = { 
 
name: 'John', 
 
lastName: 'Smith', 
 
yearOfBirth: 1990, 
 
job: 'teacher', 
 
isMarried: false, 
 
family: ['Jane', 'Mark', 'Bob'], 
 
calculateAge: function() { 
 
console.log('#1', this); 
 
this.age = 2016 - this.yearOfBirth; 
 
console.log('#2', this); 
 
} 
 
}; 
 

 
john.calculateAge(); 
 
console.log(john);

+0

ありがとう、私はそれを理解した。これをコンソールに記録すると、オブジェクトプロパティの上に新しい 'age'変数が表示されます。それは 'age'変数がデフォルトでどのように記録されるのかということですか? #1出力の –

+0

はログに記録されません。これを追加すると、毎回ログに記録されます – marvel308

関連する問題