从函数体内部访问函数对象的属性
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