2016-05-30 6 views
0

サブオブジェクトレベル2(sub3)からメインオブジェクトのプロパティまたはメソッドにアクセスする方法を教えてください。可能であれば、私は解決の連鎖を避けたいと思います。JavaScriptからサブオブジェクトへのアクセス

Obj = function() {}; 
Obj.prototype = { 
    name: 'name', 
    main: function(){ 
     console.log(this.name); 
    }, 
    subobject: { 
     sub2: function() { 
      console.log(this); 
     }, 

     sub3: function() { 
      console.log(this.name); // How access to Obj.name ?? 
     } 

    } 
} 
o = new Obj(); 
o.main(); // return name 
o.subobject.sub2(); // return subobject 
o.subobject.sub3(); // return undefined 

答えて

2

現在の構文では、できません。 sub2sub3の場合、this変数はObj.prototype.subobjectです。

  • 明白な1:subojectを使用していない

    あなたが複数の選択肢を持っています。

  • 各呼び出しで使用bind

    Obj = function() { 
        var self = this; 
    
        this.subobject = { 
         sub1: function() { console.log(self); } 
        } 
    } 
    
  • コンストラクタでsubobjectsub2sub3を作成します。

    o.subobject.sub2.bind(o)(); 
    
関連する問題