function createFormFieldFactory(type) {
  return function(label, value = '') {
    return {
      type: type,
      label: label,
      value: value,
      getField() {
        return { type: this.type, label: this.label, value: this.value };
      }
    };
  };
}

const createTextField = createFormFieldFactory('text');
const createNumberField = createFormFieldFactory('number');

const nameField = createTextField('Name');
const ageField = createNumberField('Age', 30);

console.log(nameField.getField()); // Output: { type: 'text', label: 'Name', value: '' }
console.log(ageField.getField()); // Output: { type: 'number', label: 'Age', value: 30 }