看一下这段代码
var obj = {
foo: 5
};
var recursive = (function(){
if(this.foo === 0){
return;
}
this.foo--;
recursive();
}).bind(obj);
递归函数是否创建循环引用?如果不是,为什么?
编辑:函数
recursive
与自身之间的循环引用。我也发现了类似的here 最佳答案
递归函数定义是否创建像this one here这样的循环引用?
是的,它仍然可以。 bind
不会改变它,尽管它在参考圆中引入了一个附加链接。
变量recursive
具有绑定函数
绑定函数(通过.bind()
调用创建)包含一个具有原始函数的插槽
原始函数(从函数表达式创建)将关闭包含recursive
的变量范围