为什么这里会stackovreflow?
发布于 7 年前 作者 hopperhuang 2571 次浏览 来自 问答
			tree = {
				get:function(){
					console.log('tree');
				},
				redb:function(){
					old = this.get;
					this.get = function(){
						console.log(old);	/*
						                   * function (){
												console.log('tree');
											}
						                   */
						old();
						console.log('redball');
					}
					console.log(old);   /*
					                     * function (){
											console.log('tree');
											}
					                     */
					console.log(this.get)
				}
			}
			tree.redb();
			tree.get();

上面的调用get方法为什么会stackoverflow呢。 old指向的原来的函数呀。 然后我把this.get指向新的函数。 新的get里面调用的是原理的函数,两个函数应该放在不同内存的。为什么会重复调用?

1 回复

我试了一下,没有发生 stack overflow,你是不是还有别的代码?

回到顶部