You're trying to use a classical inheritance in a prototype based language. In javascript there are no Class definitions and Class instances. There are only static objects, that share methods through a prototype chain.
To make objects that inherit from Animal:
var Animal = {vertebrae: "jelly"};
var Human = Object.create(Animal)
console.log(Human.vertebrae); //=> jelly
To make objects that inherit from Human
var programmer = Object.create(Human);
console.log(programmer.vertebrae); //=> jelly
Some JS authorities (mainly Crockford) discourage overriding the standard get and set methods, unless you absolutely know what you're doing.
Also important to note that JS does not have private properties, and that functionality can be achieved by use of an outer function scope and closure. Search for javascript private properties.
To add methods to Human
Human._name = 'Human';
Human.getName = function(){ return this._name; }
Human.setName = function(val){ this._name = val; }
console.log(programmer.getName()); //=> 'Human'
programmer.setName("Bob");
console.log(programmer.getName()); //=> 'Bob'
console.log(Human.getName()); //=> 'Human'
console.log(Animal.getName()); //=> not a function
you can use the properties object if you like to set the methods when doing Object.create(), but that syntax is unfortunately verbose.