基于索引结束的Javascript对象表现不同:foo与foo()

Maj*_*our 1 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
Run Code Online (Sandbox Code Playgroud)

更新:JavaScript方法重载很接近,但不是我想要的.

Update2:jsfiddle(以下提供的解决方案).

Cas*_*Chu 6

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

baseObject.foo = function () { console.log('executing foo') }
baseObject.foo.toString = function () { return 'This function outputs "executing foo"'; }
Run Code Online (Sandbox Code Playgroud)