Javascript 是否将sourceLocation属性添加到函数?
作为问题的后续行动,我有以下问题 如果我查看一个函数的属性,我会发现它有一个名称、长度等。是否有可能通过黑客攻击“function”对象的构造函数来自动向所有函数添加属性?如果是,应如何做?我想添加一个名为“source\u location”的属性Javascript 是否将sourceLocation属性添加到函数?,javascript,node.js,constructor,prototype,v8,Javascript,Node.js,Constructor,Prototype,V8,作为问题的后续行动,我有以下问题 如果我查看一个函数的属性,我会发现它有一个名称、长度等。是否有可能通过黑客攻击“function”对象的构造函数来自动向所有函数添加属性?如果是,应如何做?我想添加一个名为“source\u location”的属性 function foo() { } console.log(foo.name); //works out of the box console.log(foo.source_location); //can I make this work?
function foo() {
}
console.log(foo.name); //works out of the box
console.log(foo.source_location); //can I make this work?
您可以使用v8的调试器对象 来源 执行 输出 参考资料
但是console.log已经显示了源位置?是吗?你能举个例子吗,Firefox和IE9也是如此。是非标准的,但肯定是V8的一部分,所以应该可以提供给您。这不是我所问问题的解决方案。我想知道函数的源位置。不是来电者。在我给出的示例中,甚至没有来电者。
// test.js
function bar() {
}
function foo() {
}
foo.source_location = debug.Debug.findFunctionSourceLocation(foo);
console.log(foo.name);
console.log(foo.source_location);
console.log(foo.source_location.script.name);
node --expose-debug-as=debug test.js
foo
{ script: {}, // script object
position: 106,
line: 5,
column: 12,
start: 94,
end: 110 }
/home/skomski/test.js