вернуть это возвращает неопределенный - PullRequest
0 голосов
/ 07 июля 2019

У меня есть вспомогательный метод под названием magnitude, который я пытался использовать с ним функции сцепления.

Это моя величина.js:

export const Magnitude = props => {
   let data;

    const formatterObj = {
        getData: props => {
            return data ? data : { ...props, magnitude: '', negativeSign: '', format: '' };
        },
        setData: newData => {
            data = { ...data, ...newData };
        },
        format: str => {
            const { value } = data;
            const absValue = Number(Math.abs(value));
            const negativeSign = value > 0 ? '' : '-';
             const magnitude = (absValue) => { return {value: absValue/10, abbr: 'k'}};

            formatterObj.setData({ value: magnitude.value, magnitude: magnitude.abbr, negativeSign, format: str });
            return this;
         }
    };

    data = formatterObj.getData(props);

    return formatterObj;
};

и это мой app.js:

 console.log(Magnitude({value: 10000,currency: "$"}).format('NSVU'));

Когда я отлаживаю его, я вижу в инструменте webkit, что по возвращении this он фактически возвращает весь объект, включая формат метода. Но когда я console.log печатает неопределенный.

1 Ответ

2 голосов
/ 07 июля 2019

Вам необходимо использовать скобки, если вы хотите вернуть объект из функции стрелки.

const magnitude = absValue => ({ value: absValue / 10, abbr: "k" });

Кроме того, если вы хотите вернуть this свойство из format, вы должны использовать обычную (в стиле ES5) функцию - в противном случае требуемый this будет потерян из-за лексической привязки функции стрелки .

format: function(str) {...}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...