5
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);

4

1 回答 1

4

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

你不能,你必须define明确地让它对你的函数可用(将它作为参数传递,等等)。

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

于 2013-06-30T17:41:05.377 回答