Выявление шаблонов шаблонов Javascript - PullRequest
0 голосов
/ 05 июля 2019

Какой подход более удобен в реальном проекте?Может кто-нибудь, пожалуйста, просветите меня?И расскажите разницу между всеми из них (эффективность / чистый код и т. Д.)

Все они дают одинаковый результат.Классы ES6.

2-й подход Шаблон конструктора в сочетании с шаблоном раскрытия модуля.

3-й - это только шаблон / функция конструктора, а свойства используются в обычном объявлении функции.

Я хочу создать приложение, в которое я вставляю некоторые данные из формы ввода, создавая их с помощью классов / конструкторов, а затем отображаю их в пользовательском интерфейсе.Очевидно, что данные постоянно меняются (создание нескольких объектов при вставке новой формы ввода)

// 1st approach with classes
const test1 = (() => {
  class TestClass {
    constructor() {
     this.string = 'Class';
    }

  classMethod() {
   console.log(this.string);
  }
 }

  const testClass = new TestClass();

  return {
   testClass
  }
 })();

test1.testClass.classMethod();

// 2nd approach with constructor and constructor protoype methods
const test2 = (() => {
 function TestConstructor() {
  this.string = 'Constructor';
 }

TestConstructor.prototype = {
 constructorMethod() {
  console.log(this.string);
 }
}

const testConstr = new TestConstructor();

 return {
  testConstr
 }
})();

test2.testConstr.constructorMethod();

// 3rd approach with constructor with function declaration
const test3 = (() => {
 function TestConstructor() {
  this.string = 'Constructor with function declaration';
 }

 const testConstr = new TestConstructor();

 function normal() {
  console.log(testConstr.string);
 }

 return {
  normal
 }
})();

test3.normal();
...