Возможно, определив вашу функцию конструктора следующим образом:
function Person(props) {
this.name = props.name;
this.age = props.age;
this.gender = props.gender || 'female';
}
... хотя, если вы когда-нибудь захотели передать пол ложного кода (например ''
, 0
, false
,null
или undefined
) будет использоваться значение по умолчанию.Если это проблема, вы можете сделать что-то вроде:
function Person(props) {
// expected properties
this.name = props.name;
this.age = props.age;
// optional properties
var defaults = {
gender: 'female'
// etc
};
for (var k in defaults) {
this[k] = props.hasOwnProperty(k) ? props[k] : defaults[k];
}
}