如何从该函数内部访问函数名?
// parasitic inheritance
var ns.parent.child = function() {
var parent = new ns.parent();
parent.newFunc = function() {
}
return parent;
}
var ns.parent = function() {
// at this point, i want to know who the child is that called the parent
// ie
}
var obj = new ns.parent.child();
Run Code Online (Sandbox Code Playgroud) 为什么arguments.callee.caller在JavaScript中弃用了该属性?
它已添加,然后在JavaScript中弃用,但ECMAScript完全省略了它.某些浏览器(Mozilla,IE)一直支持它,并且在地图上没有任何计划来删除支持.其他人(Safari,Opera)已经采用了它的支持,但对旧浏览器的支持是不可靠的.
是否有充分理由将这些有价值的功能置于不确定状态?
(或者,有没有更好的方法来获取调用函数的句柄?)
是否有可能做到这一点:
myfile.js:
function foo() {
alert(<my-function-name>);
// pops-up "foo"
// or even better: "myfile.js : foo"
}
Run Code Online (Sandbox Code Playgroud)
我的堆栈中有Dojo和jQuery框架,所以如果其中任何一个更容易,它们就可用了.
我需要当前函数名作为字符串来登录我们的日志工具.但arguments.callee.name只能在松散模式下工作.如何获取功能名称"use strict"?
背景: 我继承了一个Web应用程序,旨在创建本地和远程设备之间的即时连接.最近有大量的移动部件:应用程序本身发生了重大变化; 开发工具链刚刚更新; 本地和远程设备都已"修改"以支持这些变化.
好的一面是它有一个合理的日志记录系统,可以将调试消息写入文件,它将同时记录到文件和实时用户屏幕.我有机会重新使用整个日志/调试机制.
例子:
问题:您作为开发人员或被视为消费者的哪些最佳实践可以生成有用的日志和调试?
编辑:到目前为止很多有用的建议,谢谢!为了澄清:我更感兴趣的是什么日志:内容,格式等 .--而这样做的原因-不是具体的工具.
您看到的最好的日志对他们最有帮助的是什么?
谢谢你的帮助!