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希望从外部获得它。