我有一个称为“大小”的辅助方法,我试图将其与链接功能一起使用。
那是我的幅度.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时,它显示未定义。
答案 0 :(得分:2)
如果希望通过箭头函数返回对象,则需要使用括号。
const magnitude = absValue => ({ value: absValue / 10, abbr: "k" });
此外,如果您希望从this
返回format
属性,则必须使用普通的(ES5样式)函数-否则,您想要的this
将丢失箭头功能的词汇绑定。
format: function(str) {...}