Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否将sourceLocation属性添加到函数?_Javascript_Node.js_Constructor_Prototype_V8 - Fatal编程技术网

Javascript 是否将sourceLocation属性添加到函数?

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”对象的构造函数来自动向所有函数添加属性?如果是,应如何做?我想添加一个名为“source\u location”的属性

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