Многие люди этого не знают, но вы уже можете использовать и расширять реальные классы в Node.js. Есть несколько недостатков, но как только вы узнаете о них, на самом деле это не недостатки, а положительные моменты, которые сделают ваш код быстрее и лучше.

Разве в Javascript еще нет ООП?

Конечно, Javascript, конечно, уже имеет ООП, когда вы используете
className.prototype.methodName = function () {}
и т. Д., Но с новым стандартом Javascript ES6, мы получили действительно красивый и понятный синтаксис для создания классов.

Возьмем простой пример "Человек".

Вот как вы, вероятно, сделаете это прямо сейчас, определив функцию, которая является вашим «Классом», а затем определите методы с помощью прототипа. Если вы хотите сделать что-то особенное при присвоении имени, вы, вероятно, создадите для него функцию setName.

И вот как мы сделали бы то же самое в ES6:

Теперь это не волшебно лучше, но, на мой взгляд, синтаксис определенно легче читать, и вы можете использовать геттеры / сеттеры, если хотите (если вам нужен метод setName и делать это по-старому, вы, конечно, тоже можете это сделать ).

Кроме того, ES6 позволяет расширять классы, просто написав class Employee extends Person, со всеми вытекающими из этого последствиями. Это действительно здорово, по сравнению со старым способом, когда вам, по сути, нужно пройти через обручи, чтобы сделать то же самое.

Какие есть недостатки?

Как я уже упоминал, здесь есть недостатки. Основная из них заключается в том, что это недоступно на стороне клиента, потому что большинство браузеров в настоящее время не поддерживают ES6. Это сделает ваши классы на сервере и на клиенте немного разными. Я не очень часто замечаю это, когда программирую, мой мозг легко переходит в «клиентский» режим с уже существующими различиями.

Другой «недостаток» заключается в том, что вам нужно запускать код в строгом режиме, но на самом деле это не является недостатком, поскольку строгий режим заставит вас писать код более безопасно и с большей производительностью.

Что такое строгий режим и зачем его использовать?

Строгий режим изменяет ранее принятый «плохой синтаксис» на реальные ошибки.

Поначалу это могло бы немного раздражать, если бы вы привыкли к бездельничанию и написанию разрозненного кода или, возможно, даже не знали, что ваш код не был жестким, но поверьте мне, это все к лучшему. Ваш код будет даже быстрее, потому что компилятор может лучше оптимизировать.

Я не буду упоминать все, что делает строгий режим, но рекомендую вам взглянуть на лучшую справочную информацию, которую я нашел, а именно на документацию Microsoft Javascript (хотите верьте, хотите нет).

То, что, вероятно, затронет большинство людей, - это то, что вы не можете использовать неопределенные переменные.

Но, как я уже сказал, этого в любом случае быть не должно. Люди будут высмеивать вас и называть плохими именами, если узнают, что вы так кодируете, так что на самом деле будет лучше, если вы обнаружите, что следуете плохим практикам сейчас, а не позже.

Итак, как нам включить это в Node.js?

Если вы попытаетесь использовать приведенный выше пример прямо сейчас, вы получите сообщение об ошибке. Node.js будет использовать ES6, только если вы запустите его в строгом режиме.

Вы можете включить строгий режим, запустив все приложение в строгом режиме, запустив узел с

node —-use_strict webtential.js

или включив его в одном файле, вставив

"use strict";

вверху вашего файла.

Я надеюсь, что вам это пригодится, и я надеюсь, что у вас будет отличный и хороший день.

Автор Мартин Моуритцен.