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的方法,但后来我迷路了。