【发布时间】:2009-08-02 10:57:10
【问题描述】:
我得到以下代码:
function test () {
this.testFunction = function () {
//code to alert or return the string "testFunction"
}
}
var testVar = new test();
testVar.testFunction();
有没有办法找出未命名函数分配给的属性的名称?我尝试与“调用者”和“被调用者”方法结合使用的任何方法都没有取得任何成功。
编辑: 我想检索属性名称的原因是将其用于调试消息,而我不必手动将属性名称传递给记录器。性能不是问题,因为这只是针对开发过程。
实际上,给函数命名的建议是个好主意……我想。除了必须输入两次函数名称之外,这是否有任何明显/众所周知的副作用? :-P
此外,这让我想到了在函数的开头添加注释,看起来像
/* $$NAME$$="testFunction" */
并且也可以解析 - 但是 JavaScript cmets 似乎在 FireFox 中被修剪(不像 IE),我更喜欢 FF 进行开发。使用“caller”/“callee”属性时,是否有办法在 FF 中也显示/使用 JS cmets?
【问题讨论】:
标签: javascript reflection closures