index.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /*Person Constructor
  2. Переделайте задание createPerson на функцию конструктор Person.
  3. const a = new Person("Вася", "Пупкин")
  4. const b = new Person("Анна", "Иванова")
  5. const c = new Person("Елизавета", "Петрова")
  6. console.log(a.getFullName()) //Вася Пупкин
  7. a.fatherName = 'Иванович' //Вася Иванович Пупкин
  8. console.log(b.getFullName()) //Анна Иванова
  9. Для этого методы и свойства заносите не в создаваемый объект, а в this внутри конструктора.*/
  10. {
  11. const a = new Person("Вася", "Пупкин")
  12. const b = new Person("Анна", "Иванова")
  13. const c = new Person("Елизавета", "Петрова")
  14. console.log(a.getFullName()) //Вася Пупкин
  15. a.fatherName = 'Иванович' //Вася Иванович Пупкин
  16. console.log(b.getFullName()) //Анна Иванова
  17. function Person(name, surname) {
  18. this.name = name,
  19. this.surname = surname,
  20. this.getFullName = () => `${this.name} ${this.fatherName || ""} ${this.surname}`
  21. }
  22. }
  23. /*Person Prototype
  24. Переделайте предыдущее задание, вынеся методы в прототип. Для этого вместо присвоения в this занесите их в объект Person.prototype. После этой переделки все должно работать по старому:
  25. const a = createPerson("Вася", "Пупкин")
  26. const b = createPerson("Анна", "Иванова")
  27. const c = createPerson("Елизавета", "Петрова")
  28. console.log(a.getFullName()) //Вася Пупкин
  29. a.fatherName = 'Иванович' //Вася Иванович Пупкин
  30. console.log(b.getFullName()) //Анна Иванова*/
  31. {
  32. const a = createPerson("Вася", "Пупкин")
  33. const b = createPerson("Анна", "Иванова")
  34. const c = createPerson("Елизавета", "Петрова")
  35. console.log(a.getFullName()) //Вася Пупкин
  36. a.fatherName = 'Иванович' //Вася Иванович Пупкин
  37. console.log(a.getFullName())
  38. console.log(b.getFullName()) //Анна Иванова*/
  39. function createPerson(name, surname){
  40. function Person(name, surname) {
  41. Person.prototype.getFullName = function () {return `${this.name} ${this.fatherName || ""} ${this.surname}`}
  42. this.name = name
  43. this.surname = surname
  44. }
  45. const a = new Person (name, surname)
  46. return a
  47. }
  48. }