2016-08-05 10 views
-1

я определил свой собственный тип «Возраст», как часть типа «Человек», как это:Индивидуальное свойство не указано в Javascript?

var Age=function(){ 
    year='1930', 
    month='Jan' 
} 
var Person=function(){ 
    name='abc', 
    age=new Age() 
} 
var o1=new Person() 
console.log(o1.propertyIsEnumerable('age')) 

Мои ожидания, до тех пор, как возраст собственности o1 в создается из «Age», а его «год/month "могут быть посещены с использованием строки в качестве индекса, тогда o1 имеет перечислимый тип. Но факт, что он, он печатает «ложь».

Почему это, не так ли?

+0

Пожалуйста, перечитайте часть учебника JS, где он говорит о конструкторах и как установить свойство экземпляра. –

ответ

1

Вы определяете глобальные переменные не свойство

var Age=function(){ 
    year='1930', 
    month='Jan' 
} 
var Person=function(){ 
    name='abc', 
    age=new Age() 
} 

Должен быть

var Age=function(){ 
    this.year='1930'; 
    this.month='Jan'; 
} 
var Person=function(){ 
    this.name='abc'; 
    this.age=new Age(); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^