Javascript函数具有类似对象的属性

时间:2016-09-14 17:15:25

标签: javascript function

javascript函数是否有类似属性的错误?

function foo(prop) { return foo[prop] }
foo.faa = 'blah';
foo.fee = 'bleh';

在我的实际案例中,我将其用作状态讯息:

(我无法在此处粘贴我的函数,因为S.O.说代码太多,但是it can be found here)。

所以我可以这样使用:

if (candidateStatus(candidate) === candidateStatus.ELECTED) {...}

2 个答案:

答案 0 :(得分:3)

不,这没有错。 Javascript中的函数(几乎所有其他函数)都是对象,可以这样处理。

答案 1 :(得分:1)

没有错,这将像函数[像对象]属性

function foo(prop) { return foo[prop] }
foo.faa = 'blah';
foo.fee = 'bleh';

 // Is same as 

function foo(prop) { 
   this.faa = 'blan';  
   this.fee = 'bleh';
   return foo[prop];   // or we can write foo.prop
 }  
 var newFun = new foo();
  console.log(newFun['faa']);  // blan

不带回复陈述的情况

function foo() { 
   this.faa = 'blan';  
   this.fee = 'bleh';
 }  
 var newFun = new foo();
  console.log(newFoo.faa);  // blan