function main()
{
Hello();
}
function Hello()
{
// How do you find out the caller function is 'main'?
}
Run Code Online (Sandbox Code Playgroud)
有没有办法找出调用堆栈?
function define(prop, value) {
Object.defineProperty( /* context of caller */ , prop, {value: value});
}
function F() {
define('x', 42);
}
var f = new F();
Run Code Online (Sandbox Code Playgroud)
有没有办法获取调用函数的上下文(在上面的代码中内联注释)?
如果我绑定到这个(将注释替换为this)并在F构造函数中声明,它工作正常var def = define.bind(this);
我在研究 V8 的内部工作原理时遇到了术语 JIT 编译器。最初,我在这篇文章https://www.quora.com/How-does-the-JIT-compiler-work-in-JS中读到V8 中的 JIT 编译器称为“Ignition”,即解释器。然后,我得出结论,JIT 编译器只是解释器。但后来我发现了另一篇文章https://blog.logrocket.com/how-javascript-works-optimizing-the-v8-compiler-for-efficiency/将 jit-compilation 描述为解释器和编译器的组合。伙计们,JIT 编译器真的是解释器和编译器的结合吗?或者 JIT 编译器只是解释器吗?