我目前正在查看我的 React 项目,寻找可以将不纯函数转换为纯函数的地方,以减少副作用、更整洁和更易于理解的代码。
我相信/希望在可能的情况下转换为纯函数将实现这一目标。
我的问题是,在函数中使用 Object.keys() 会被视为杂质吗?
对象.keys()
我的想法是,虽然Object.keys()
它是一个不在范围内的函数getObjectKeys
,但它在 vanilla JS 中是全局的,因此它不会被视为杂质或需要添加到函数参数中以使函数纯净通过使用Dependency Injection
. 因此,当询问是否getObjectKeys
是纯函数时:
- 对于相同的输入,它是否输出相同 -> 是的。
- 修改任何外部变量或对象属性 -> 否
- 有没有副作用 -> 没有
你会认为 getObjectKeys 是一个纯函数吗?
function getObjectKeys(obj) {
return Object.keys(obj)
}