javascript:将方法和字符串分配给相同的属性名称

Ada*_*ook 6 javascript methods properties

我知道我会让那些说我不应该这样做的人,但我很好奇人们是如何做到的.

我知道我已经看到你可以在哪里输入属性的名称并获得一个值,但是然后你将括号添加到结尾并访问一个方法.

在视觉上,我这样说:

foo returns 'bar'
foo() performs a function
Run Code Online (Sandbox Code Playgroud)

问题是如何?

Dow*_*oat 0

不,但是有点...

这可以用以下方式完成valueOf

var foo = function() {
  console.log("From Function");
  return "Function";
};

foo.valueOf = function() {
  return "Variable";
};

alert( 'Output is: ' + foo() )
alert( 'Output is: ' + foo   )
Run Code Online (Sandbox Code Playgroud)

这不能用 JavaScript 来完成,因为对象中的项目可以是两个不同的对象。

如果你想要一个属性是一个函数和一个对象,那是不同的