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

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

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

如果我绑定(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/

相关文章:

javascript - jQuery 选择器上下文 : this or $(this)

javascript - 只在页面加载时运行一次这个函数?

javascript - Node.js 异步同步

javascript - 使用bind(this)并一起传递参数

javascript - 函数构造函数 - 使用原型(prototype)添加函数给出 - 未捕获的语法错误 : Unexpected token {

javascript - Function 构造函数的合法使用

javascript - 我可以创建一个指向 javascript 函数的链接吗?

javascript - 为在 Karma 中执行整页重新加载的指令编写测试

Javascript 函数对象,this 关键字指向错误的对象