从函数体内部访问函数对象的属性

javascript中的函数也是一个对象,可以有属性。 那么是否有任何方法可以从它自己的函数体内部访问它的属性?

喜欢这个

var f = function() { 
  console.log(/*some way to access f.a*/);
};
f.a = 'Test';
f(); //should log 'Test' to console

arguments.callee是函数本身,不受函数名称的影响。

var f = function() { 
  console.log(arguments.callee.a);
};
f.a = 'Test';
f();

你可以使用这个:

console.log(f.a);

如果f被执行, f() ,在fa = 'Test'; 您将在控制台中得到undefined ,因为没有定义名称/密钥a任何属性。 fa = 'Test'; 被执行时,名称/键a将在f上定义,相应的值将为'Test' 。 因此,稍后在函数f上执行,值'Test'将作为控制台的输出。


这样做的经典方法是将函数绑定到自身,然后可以通过this方法访问自己的属性:

 var f = function() { 
   console.log(this.a);    // USE "THIS" TO ACCESS PROPERTY
 };

 f.a = 'Test';
 f = f.bind(f);            // BIND TO SELF

 f();                      // WILL LOG 'Test' TO CONSOLE
链接地址: http://www.djcxy.com/p/83019.html

上一篇: Accessing function object's properties from inside the function body

下一篇: How to write a native Mac OS X GUI with Rust?