function define(prop, value) {
Object.defineProperty( /* context of caller */ , prop, {value: value});
}
function F() {
define('x', 42);
}
var f = new F();
有没有办法获取调用函数的上下文(在上面的代码中内联注释)?
如果我绑定(bind)到 this(将注释替换为 this
)并在 F
构造函数中声明 var def = define.bind(this);
最佳答案
How to get context of calling function/object?
你不能,你必须明确地让它对你的 define
函数可用(将它作为参数传入,等等)。
这是一件好事(tm)。 :-) 您最不想看到的是函数可以访问调用者的上下文并以不受控制的方式更改内容。
关于javascript - 如何获取调用函数/对象的上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17393052/