是否可以构造一个对象以返回以下内容:
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很接近,但不是我要找的。p>
更新 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/