如何获取调用函数/对象的上下文?

时间:2013-06-30 17:35:57

标签: 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();

有没有办法获取调用函数的上下文(在上面的代码中用内联注释)?

如果我绑定到它(将注释替换为this)并在F构造函数内部声明var def = define.bind(this);

,它可以正常工作

1 个答案:

答案 0 :(得分:3)

  

如何获取调用函数/对象的上下文?

你不能,你必须明确地将它提供给define函数(将其作为参数传递等)。

这是一件好事(tm)。 :-)你想要的最后一件事是可以访问调用者的上下文并以不受控制的方式改变事物的函数。