2016-11-05 23 views
3

値の無名関数内でオブジェクトを作成してアクセスするにはどうすればよいですか?私はconsole.log(obj1.key2.a);JavaScriptの値の関数内にオブジェクトを作成する方法

が、それは私がAにアクセスする方法を、次にある場合、それをこのよう

var obj2 = {key1: "val1", key2: function(){ {a: "this is a val"} }}; 

を行うことが可能であるので、私はそれにアクセスすることができます知っているOBJ1で

var obj1 = {key1: "val1", key2: {a: "this is a val"} }; 

ます。valを。

+1

'VAR OBJ2 = {KEY1: "VAL1"、K関数この関数を呼び出すと、返されるオブジェクト 'console.log(obj2.key2()。a);' –

+0

が返されます。それはオブジェクト全体を返している、どのようにそれを得るために重要なのですか? – Mohsin

+0

私は "これはヴァル"を取得したいという意味です – Mohsin

答えて

1

オブジェクトにアクセスするには、そのオブジェクトを関数から戻す必要があります。 returnステートメントを追加した後、関数を呼び出してオブジェクトを取得し、プロパティaを取得できます。

var obj2 = { 
 
    key1: "val1", 
 
    key2: function() { 
 
    return { 
 
     a: "this is a val" 
 
    } 
 
    } 
 
}; 
 

 
console.log(obj2.key2().a)

0

あなたがもう少し柔軟性が必要な場合は、通常のキーポインティングの代わりになるゲッター機能を、あなたはKEY2を持つことができます(とあなたの価値、あなたが最初に提案された方法でアクセスできるようにします)

var obj2 = { 
 
    key1: "val1", 
 
    get key2() { 
 
    return { 
 
     a: "this is a val" 
 
    } 
 
    } 
 
}; 
 

 
console.log(obj2.key2.a)

関連する問題