jsg*_*uff 5 javascript this function-constructor
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);
如何获取调用函数/对象的上下文?
你不能,你必须显式地使其可用于你的define函数(将其作为参数传递等)。
这是一件好事(tm)。:-) 您最不想要的就是函数可以访问调用者的上下文并以不受控制的方式更改内容。