проблема в том, что «это» относится к каждой функции, а не к фактическому человеку, которого вы можете изменить на функцию стрелки, и она будет работать
var person = {
name: 'John',
age: 110,
gender: 'm',
...
};
var employee = new Person(person);
function Person(args) {
$.each(args, (key, value) => { //changed to arrow function to keep this in the same scope
this[key] = value; // Cannot create property 'key' on number
});
}
console.log(employee.age);