Javascript 将对象声明为函数但包含子函数

Javascript 将对象声明为函数但包含子函数,javascript,object,javascript-objects,Javascript,Object,Javascript Objects,不难理解如何将对象声明为可调用函数: const Sys = { log: function() { //do whatever } } 然后用Sys.log()调用它 但是,在添加新的子函数的同时,如何维护此功能呢 基本上,我希望能够调用类似于Sys.log.clear()的东西,同时仍然能够调用Sys.log() 我得到的最接近的结果是这个,但它显然不起作用,否则我就不会在这里问了”_(ツ)_/''感谢您的帮助。提前谢谢 const Sys = { log: {

不难理解如何将对象声明为可调用函数:

const Sys = {
  log: function() {
    //do whatever
  }
}
然后用
Sys.log()调用它

但是,在添加新的子函数的同时,如何维护此功能呢

基本上,我希望能够调用类似于
Sys.log.clear()
的东西,同时仍然能够调用
Sys.log()

我得到的最接近的结果是这个,但它显然不起作用,否则我就不会在这里问了”_(ツ)_/''感谢您的帮助。提前谢谢

const Sys = {
  log: {
    function(arg) {
      alert(arg);
    },
    clear: function(arg) {
      alert(arg);
    }
 }
}

我可能错了,但我认为在对象文本中很难清晰地做到这一点。您可以定义一个返回所需函数的函数:

函数makelog(){
设fn=函数(arg){
console.log(arg)
}
fn.clear=函数(arg){
console.log(arg)
}
返回fn
}
常数sys={
日志:makelog()
}
sys.log(“你好”)

sys.log.clear(“world”)
我可能错了,但我认为很难在对象文本中清晰地执行此操作。您可以定义一个返回所需函数的函数:

函数makelog(){
设fn=函数(arg){
console.log(arg)
}
fn.clear=函数(arg){
console.log(arg)
}
返回fn
}
常数sys={
日志:makelog()
}
sys.log(“你好”)

sys.log.clear(“world”)
对于奖金积分,在底部是对象方法链接方法,我如何将传递到
log(“”)
的信息传递给
clear()
在不影响全局范围的情况下?也许我应该就此提出一个新问题,似乎到处都没有答案。嗨@Arlo-我认为这很难直接做到,因为它们实际上是两个独立的函数调用。有一件事你可能会侥幸逃脱,那就是在
log()期间在
这个
上存储一个值
然后在
clear()
过程中引用。不确定其他方法。对于奖励积分,在底部有对象方法链接方法的情况下,我如何将传递到
日志(“”)
中的信息传递给
clear()
在不影响全局范围的情况下?也许我应该就此提出一个新问题,似乎到处都没有答案。嗨@Arlo-我认为这很难直接做到,因为它们实际上是两个独立的函数调用。有一件事你可能会侥幸逃脱,那就是在
log()期间在
这个
上存储一个值
然后在
清除()过程中引用。不确定其他方法。