首页 > 解决方案 > 当像变量一样访问函数时添加返回类型的字符串

问题描述

我不确定这是否可能(实际上我正在努力找出谷歌搜索的内容),但它是这样的:

我有一个功能

const test = () => {
  some logic..
  return bla
}

现在当我使用'test()'时,我希望执行该函数。但是当我使用“测试”时,我希望返回一个自定义字符串。是否有可能通过对象代理以某种方式实现这一目标?

标签: javascriptecmascript-6ecmascript-2016

解决方案


是否有可能通过对象代理以某种方式实现这一目标?

不,这是不可能的。您不能将可调用代理作为原始字符串。如果您希望您的test(函数)对象在字符串化时显示自定义字符串(例如连接到其他字符串时),只需给它一个自定义.toString()方法

const test = Object.assign(() => "Hello World", {
  toString() {
    return "123";
  }
});
console.log("Example call " + test());
console.log("Example stringification " + test);
console.log("Function object", test);
console.log("as a string", String(test));


推荐阅读