您可以添加一些原型以提供从V8访问此信息的权限:
Object.defineProperty(global, '__stack', {get: function() { var orig = Error.prepareStackTrace; Error.prepareStackTrace = function(_, stack) { return stack; }; var err = new Error; Error.captureStackTrace(err, arguments.callee); var stack = err.stack; Error.prepareStackTrace = orig; return stack; }});Object.defineProperty(global, '__line', {get: function() { return __stack[1].getLineNumber(); }});Object.defineProperty(global, '__function', {get: function() { return __stack[1].getFunctionName(); }});function foo() { console.log(__line); console.log(__function);}foo()分别返回“ 28”和“ foo”。



