Javascript 删除后的绑定成员调用
在此代码段中,delete返回true。那么,为什么f在delete之后被成功调用呢Javascript 删除后的绑定成员调用,javascript,Javascript,在此代码段中,delete返回true。那么,为什么f在delete之后被成功调用呢 函数X(){ this.f=函数(){ console.log(“X::f”); } } x=新的x; var f=x.f.bind(x); console.log(“删除:”+delete x); f()delete刚刚删除了标识符x。该对象仍然存在于内存中,因为它已绑定到f f仍然引用具有相同绑定上下文的相同函数,即使x没有 见: 与一般的看法不同,delete操作符与直接释放内存无关(它仅通过中断引用来
函数X(){
this.f=函数(){
console.log(“X::f”);
}
}
x=新的x;
var f=x.f.bind(x);
console.log(“删除:”+delete x);
f()
delete
刚刚删除了标识符x
。该对象仍然存在于内存中,因为它已绑定到f
f
仍然引用具有相同绑定上下文的相同函数,即使x
没有
见:
与一般的看法不同,delete操作符与直接释放内存无关(它仅通过中断引用来间接释放内存。有关详细信息,请参阅内存管理页面)
你怎么能越过“var f…”这一行呢?foo没有定义我已经编辑了代码段。我想是在全局范围内创建了对象x。