просьба сильно не пинать, а объяснить и/или дать ссылку на хороших мануал, только пытаюсь разобраться с ООП
есть объект имеющий древовидную структуру:
obj={
   func:{
      msg1: 'fm1...',
      msg2: 'fm2...',
      msg3: 'fm3...',
      msg4: 'fm4...',
      showF: showMsg
   },
   errs:{
      msg1: 'em1...',
      msg2: 'em2...',
      msg3: 'em3...',
      msg4: 'em4...',
      showE: showMsg
   },
   // и так далее
   show: showMsg
};
function showMsg(m){
   alert(m)
}
obj.show(obj.func.msg3)
как переделать этот код, чтобы:
можно было обратиться сразу к внутреннемому объекту (например, к func) и в параметрах, указывать не полный идентификатор объекта (obj.func.msg3), а только последний (msg3), т.е. как-то так:
obj.showF('msg3')
с передачей значения/указателя (msg3) - пробовал через this в функции showMsg() но видимо, не до конца понимаю куда, что ссылается, в итоге, получаю ссылку на объект, вместо текста сообщения 
с изменением имени (obj.func.showF на obj.showF) - вообще не получилось, видимо, как-то не правильно создаю указатель