返回此返回未定义

时间:2019-07-07 06:19:20

标签: javascript reactjs function object ecmascript-6

我有一个称为“大小”的辅助方法,我试图将其与链接功能一起使用。

那是我的幅度.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工具上看到它实际上返回的是整个obj,包括方法格式。但是当我console.log时,它显示未定义。

1 个答案:

答案 0 :(得分:2)

如果希望通过箭头函数返回对象,则需要使用括号。

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

此外,如果您希望从this返回format属性,则必须使用普通的(ES5样式)函数-否则,您想要的this将丢失箭头功能的词汇绑定。

format: function(str) {...}