Использование стрелочных функций внутри класса и использование их в конструкторе - nodejs

У меня есть класс с именем user, в котором есть метод getDetails. Я использую функцию стрелки для метода.

проблема в том, что когда я использую функцию стрелки, eslint показывает ошибку, для = (равно), поэтому я добавил babel-eslint. Теперь ошибка eslint не отображается, но когда я запускаю код, она отображается

SyntaxError: неожиданный токен =

// index.js

class User{
  constructor(){
    this.users = this.getUsers()
  }

  getUsers = () => {
    return ["test1", "test2"]
  }
}

// eslintrc

{
  "extends": "airbnb-base",
  "parser": "babel-eslint",
  "env": {
    "es6": true,
    "jest": true
  },
 .........
..........
}

Я использую версию узла 8.11.1. Любая помощь приветствуется.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
1 287
2

Ответы 2

getUsers() — это метод класса, поэтому вы должны использовать следующий синтаксис ниже.

class User {
    constructor() {
        this.users = this.getUsers()
    }

    getUsers() {
        return ["test1", "test2"]
    }
}

console.info(new User().users);

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

Learner 22.02.2019 05:15

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

Learner 22.02.2019 05:16

Не знаю, понял ли я ваши комментарии. У вас есть ошибка в консоли Chrome с решением, которое я опубликовал сейчас, или с вашим первоначальным решением? Потому что я протестировал опубликованное решение в консоли браузера, и все в порядке.

Arthur Ferreira 22.02.2019 05:20

В классе вы создаете метод, а не обычную функцию. Вы можете, например, использовать функцию стрелки в свойствах конструктора, но не как метод. Этот документ помогает developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…

Arthur Ferreira 22.02.2019 05:25

с первоначальным, который я задал в вопросе. Если я использую обычный функциональный метод, он будет, но почему, когда я использую стрелочные функции, он не работает. Это потому, что нам нужен вавилон, чтобы транспилировать его?

Learner 23.02.2019 11:48

Это можно решить двумя способами.

1) Создание функции стрелки внутри конструктора, как это,

    class User {
    constructor() {
        this.users = () => {
            return ["test1", "test2"]
        }
    }
}

2) используйте node --harmony, чтобы выполнить его с помощью функции стрелки. Флаг Harmony включает функции ES6.

Другие вопросы по теме