Как писать более правильно?
Лучше сразу приучать к новому синтаксису es6 (классы, let/const):export class Human {
    constructor({ hp }) {
        this.hp = {
            current: hp,
            max: hp,
        };
    }

    damage(point) {
        this.hp.current -= point;
    }
}
let human = new Human({ hp: 100 });
human.damage(10);
console.log(human.hp.current);
В таком маленьком, изолированном от реальности примере невозможно определить. По мне так оба способа неправильные, объект ship лучше создавать через оператор new.