Javascript 如何创建可选调用的函数?

Javascript 如何创建可选调用的函数?,javascript,Javascript,我有一个叫做样式的模块 export default (props = {}) => ({ tile: { width: props.width, listStyle: "none" }, banner: { color: 'red', } }) 如果我从“./styles.js”导入样式我基本上希望能够做到两件事: 获取如下平铺样式:样式({width:})。平铺 并获得如下标题样式:styles.banner,因此不必像styles().banner

我有一个叫做样式的模块

export default (props = {}) => ({

  tile: {
    width: props.width,
    listStyle: "none"
  },
 banner: {
  color: 'red',
 }
})
如果我
从“./styles.js”导入样式我基本上希望能够做到两件事:

获取如下平铺样式:
样式({width:})。平铺


并获得如下标题样式:
styles.banner
,因此不必像
styles().banner那样调用它

如何做到这一点

编辑:很抱歉,我没有把问题说清楚。定义的对象应始终具有以下结构:

tile: {
    width: props.width,
    listStyle: "none"
  },
 banner: {
  color: 'red',
 }

返回此对象的函数可以查看您想要的任何内容

函数是一个对象,因此您还可以将其他属性附加到函数。请参阅下面的代码片段(在实际代码中,您将使用导出默认值)

constyles=(props={})=>({
瓷砖:{
宽度:props.width,
列表样式:“无”
},
});
styles.banner={
颜色:“红色”,
};
//导出默认样式
//测试代码:
console.log(styles.banner);

log(样式({width:10}).tile)我不知道您为什么要这样做,但您可以执行以下操作。需要区分哪些样式可以不带参数返回(“独立样式”),哪些样式需要输入值:

const独立样式={
横幅:{
颜色:“红色”,
},
};
const styles=(props={})=>Object.assign({},independentStyles{
瓷砖:{
宽度:props.width,
列表样式:“无”
},
});
//将属性放在函数对象上
分配(样式、独立样式);
log(样式({width:30}).tile);//{宽度:30,列表样式:'none'}
console.log(styles().tile);//{宽度:未定义,listStyle:'none'}
console.log(styles().banner);//{颜色:'红色'}
console.log(styles.banner);//{颜色:'红色'}
console.log(styles.tile);//未定义-没有道具无法确定

//导出默认样式
styles().banner
@JLRishe抱歉,更新了我的问题。我需要有选择地调用该函数。因此,styles.banner不再是styles().banner.@J.Reku,那么它就不再是函数了。您将如何传递参数?您可能正在寻找
Object.assign(styles,styles())
@JLRishe我知道这是毫无意义的,但我真的想知道如何做。我一直在寻找一种基于arguments对象并有选择地返回iLife的方法,但后来我迷路了。