Javascript 对象根据以 : foo vs. 结尾的索引 foo() 表现不同

标签 javascript object javascript-objects

是否可以构造一个对象以返回以下内容:

baseObject.foo;   // return a string describing what foo does
baseObject.foo(); // execute the foo function

baseObject.bar;   // bar description
baseObject.bar(); // execute bar

更新:JavaScript Method Overloading很接近,但不是我要找的。

更新 2:jsfiddle (下面提供的解决方案)。

最佳答案

你可以覆盖函数默认的toString方法:

baseObject.foo = function () { console.log('executing foo') }
baseObject.foo.toString = function () { return 'This function outputs "executing foo"'; }

关于Javascript 对象根据以 : foo vs. 结尾的索引 foo() 表现不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6275795/

相关文章:

javascript - header 看起来很奇怪并且 typed.js 没有显示

Javascript,测试是否支持 ScrollBy 行为 "smooth"

javascript - 如何检查在 Javascript 中作为参数传递的回调函数是否有参数?

javascript - 在 JavaScript 中使用 {} 或 new Object() 创建一个空对象?

javascript - Mongoose 文档过滤属性

javascript - sinon spy 不在生成器循环中注册调用?

python - 在python中分配被视为对象的副本

javascript - 根据对象键创建对象数组

javascript - 更改对象数组中的数据类型

javascript - 如何从具有未定义值的对象中删除键