Estaba jugando con clase/función/herencia de prototipo un poco y obtuve una configuración decente funcionando. Algo simple que entiendo.Obtenga el 'nombre de clase' actual después de la herencia de clase/prototipo
http://jsfiddle.net/rudiedirkx/rwPeD/6/
Para propósitos de depuración, quería imprimir en cada constructor de qué tipo de objeto se llama ese constructor. Por ejemplo, el constructor de Ronin llama al constructor de Ninja y llama al constructor de Person. Para que hice una función get_class
:
function get_class(obj) {
var C = String(obj.__proto__.constructor);
return C.match(/function (\w+)\(/, C)[1];
}
y que no funciona. Siempre devuelve "Persona". ¿Por qué? Cada 'clase' tiene su propio constructor, ¿no es así? Si hago un console.log(this)
en cada constructor, Chrome Devtools sabe de qué tipo es el objeto. ¿Cómo puedo llegar allí (con JS vainilla)?
PS. salida completa en mi Chrome:
posible duplicado de [¿Por qué necesita para restablecer el javascript constructor durante la herencia?] (Http://stackoverflow.com/questions/13222696/why-do -you-need-to-reset-javascript-constructor-during-inheritance) – Bergi