在JS中你可以为同一属性分配getter和函数调用吗?

时间:2018-05-16 18:43:06

标签: javascript

可以这样做......

a; // 1

a(); // function call

提出问题的不同方式是括号内有吸气剂。

你好仇恨......

我已经知道它可能是INDEED,尽管没有被问及

function a() {
  console.log('hi im in a function')
}

a.valueOf = function() {
  return 1;
}

a == 1; // > true

a(); // > "hi im in a function"

但我不会在我的代码中使用它,也不会与编写这样的代码的任何人一起工作。

1 个答案:

答案 0 :(得分:2)

不,你不能。值可以是数字也可以是函数,但不能同时存在。没有运算符重载可以让你给任意值调用它。

(但是,您可以使用valueOf方法创建一个函数对象,该方法允许在某些上下文中将对象视为数字,有关示例,请参阅here