Javascript 如何从绑定函数中提取this属性?

Javascript 如何从绑定函数中提取this属性?,javascript,this,Javascript,This,我想从一个已经绑定的函数中获取这个属性的值 函数foo(){ console.log(this.a) } const bar=foo.bind({a:1}) bar()//打印1 bar.getThis()//应返回{a:1} 在上面的示例中,如何从变量栏中提取绑定对象{a:1}?您无法得到,[[BoundThis]]是绑定函数对象的一部分 但是,您可以在控制台中看到它: 使用标准内置的function.prototype.bind方法创建的函数对象的此值的预定义值。只有使用Function

我想从一个已经绑定的函数中获取这个属性的值

函数foo(){
console.log(this.a)
}
const bar=foo.bind({a:1})
bar()//打印1
bar.getThis()//应返回{a:1}

在上面的示例中,如何从变量栏中提取绑定对象
{a:1}

您无法得到,
[[BoundThis]]
是绑定函数对象的一部分

但是,您可以在控制台中看到它:

使用标准内置的function.prototype.bind方法创建的函数对象的此值的预定义值。只有使用Function.prototype.bind创建的ECMAScript对象具有[[BoundThis]]内部属性

正如所指出的,“要在程序逻辑中使用它,您需要编写自己的bind版本,将该值作为属性公开”

尽管如此,如果您可以添加到
foo()
函数中,那么您可以执行以下操作:

函数foo(){
console.log(this.a);
返回{
得到这个:()=>这个
};
}
constbar=foo.bind({a:1});

console.log(bar().getThis())/{“a”:1}
基本上要提取绑定的对象
{a:1}
,您可以返回或记录此:

function foo() {
  console.log(this);
}

const bar = foo.bind({ a: 1 });

bar(); // { a: 1 }

我希望这能有所帮助。

实现这一点的一种方法是扩展内置的
bind
方法,如下所示

Function.prototype.\uuu-bind\uu=Function.prototype.bind;
Function.prototype.bind=函数(对象){
var fn=此。\绑定\对象;
fn.getThis=函数(){
返回对象;
}
返回fn;
}
函数foo(){
还这个
}
var bar=foo.bind({a:1})
console.log(bar());

console.log(bar.getThis())
OP希望从外部获得它。