2016-08-05 65 views
-1

ich meine eigene „Alter“ Typ definiert ist, als Teil der „Person“ Art, wie folgt aus:Angepasste Eigenschaft ist in Javascript nicht aufzählbar?

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

Meine Erwartung ist, solange Alters Unterkunft o1 von „Alter“ erstellt, während sein „Jahr/month "kann mit string als Index aufgerufen werden, dann ist o1 vom aufzählbaren Typ. Aber die Tatsache, es druckt "falsch".

Warum ist das, ist mein Verständnis falsch?

+0

Bitte den Teil des JS Tutorial neu lesen, wo es über Konstrukteuren spricht und wie Instanzeigenschaften einzustellen. –

Antwort

1

Sie definieren globale Variablen nicht Eigenschaften

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

sein sollte

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