javascript - 返回函数的返回对象
问题描述
我需要用 JavaScript 编写一个函数,它接受一个数字并返回一个返回可链接函数的对象(不使用 OOP)。
例子:
func(3).not().not().equals(4)
将输出false
.
和:
func(5).equals(5)
会输出:true
这是我写的代码:
const func = (obj) => {
const obj2 = {
not: () => {
return !obj
},
equals: (num) => {
return obj === num
}
}
return obj2
}
当我调用func(3).not()
or时它可以工作func(5).equals(5)
,但不允许我链接函数,因此调用会func(5).not().equals(5)
返回一个错误,指出这不是一个函数。
我在这里没有看到什么?
解决方案
要使用包装新值的相同方法返回另一个对象,只需func
再次调用:
const func = (obj) => {
const obj2 = {
not: () => {
return func(!obj)
// ^^^^^^^^^^^^^^^^^
},
equals: (num) => {
return obj === num
}
}
return obj2
}
console.log(func(3).not().not().equals(4))
console.log(func(5).equals(5))
console.log(func(3).not())
推荐阅读
- flutter - 如何在颤动中创建这样的列表视图构建器项目?
- c - 从 txt 文件中读取列
- python - 如何在 ScrolledText tkinter 中打印函数输出?
- python - GUI-Tkinter-Python 程序
- mysql - MySQL:如何将名称连接为树(父子类别)
- javascript - 如何使用 Cypress IO 捕获来自 Twilio 的短信?
- php - 使用 PHP 的 json 数据看起来像损坏了
- javascript - Highcharts oncahnge 事件它在第一次尝试时有效,但在第二次尝试时无效
- javascript - Javascript---我有一个 api 响应,它应该在其他任何东西加载或在浏览器中呈现之前出现
- c# - C#:将 3 个变量转换为 24 小时格式