gpt4 book ai didi

javascript - 通过对象属性实现条件逻辑

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:40:17 25 4
gpt4 key购买 nike

const abc = ({ data }) => {
console.log('abc'+data);
}

const bcd = ({ data }) => {
console.log('bcd'+data);
}

给定以上两个函数,根据数据,调用相关函数。

方法一:

if (data === 'funA') {
this.abc({ data });
} else if (data === 'funB') {
this.bcd({ data });
}

方法二:

const obj = {
funA: () => this.abc({ data: 'age' }),
funB: () => this.bcd({ data: 'name' })
}

obj[data] && obj[data]();

//Or provide a default handling function as below
//(obj[data] && obj[data]()) || someDefaultHandlingMethod()

最近看到一些 Medium 文章,推荐方法 B 而不是方法 A,以避免长 if 语句。我想知道当我们有 () => abc({ data: 'age' }) 时 MethodB 是否真的创建了冗余对象?或者有更好的方法来实现它?

注意:

以上只是伪代码,更多地分享我们如何通过使用 obj 属性和替换 if-else 来调用函数的想法

最佳答案

为什么不直接为属性赋值?这需要一个访问器来获得正确的功能和一个数据调用。逻辑保留在原始函数中。

const obj = {
funA: this.abc,
funB: this.bcd
}

obj[data](data);

关于javascript - 通过对象属性实现条件逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54416081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com