Реализация вызова кастомного метода 'method' у любой ф-ии конструктора

154
06 апреля 2018, 18:00

Этот метод принимает имя метода и его реализацию. При создании объекта с помощью этой функции конструктора у него будут методы заданные с помощью 'method'.

Пример:

Person.method('getName', function () { 
    return this.name; 
  }).method('setSurname', function (surname) { 
    this.surname = surname; 
  }).method('getFullName', function () { 
    return this.surname + ' ' + this.name; 
  }); 
 
var person = new Person('Alex'); 
console.log(person); 
person.setSurname('Sins'); 
console.log(person.getName()); 
console.log(person.getFullName());

Вообще не понимаю как реализовать этот метод. Может кто может подсказать?

Answer 1

var Person = function(name){ 
  this.name=name; 
} 
Person.method = (name, func) => (Person.prototype[name] = func, Person); 
 
 
Person.method('getName', function () { 
    return this.name; 
  }).method('setSurname', function (surname) { 
    this.surname = surname; 
  }).method('getFullName', function () { 
    return this.surname + ' ' + this.name; 
  }); 
 
var person = new Person('Alex'); 
console.log(person); 
person.setSurname('Sins'); 
console.log(person.getName()); 
console.log(person.getFullName());

READ ALSO
Не могу получить promise response [дубликат]

Не могу получить promise response [дубликат]

На данный вопрос уже ответили:

178
Access denied: no access to call this method. OpenAPI JS?

Access denied: no access to call this method. OpenAPI JS?

вылезает такая ошибка при запросе API метода, прочитал в документации, что, требуется access_tokenРебята кто-то сможет показать как примерно должен...

221
Ошибка с node js

Ошибка с node js

Ошибка в node js

177
Фейковый счетчик на PHP [требует правки]

Фейковый счетчик на PHP [требует правки]

Помогите пожалуйста с счетчикомСтоит задача такая

266