gpt4 book ai didi

javascript - 无限原型(prototype)链

转载 作者:行者123 更新时间:2023-11-30 07:15:42 25 4
gpt4 key购买 nike

谁能告诉我这段代码中的原因:

var originalfunc = function() {
this.run(this)
};

originalfunc.prototype.run = function(basefunc) {
this.basefunc = basefunc;
console.log(this);
};

var r = new originalfunc();

产生一个看起来无限的原型(prototype)链:

enter image description here

为什么会这样?我知道我正在将 originalfunc obj 分配为运行原型(prototype)的属性,但我只这样做了一次。

在这里工作 fiddle :

http://jsfiddle.net/YmThL/

最佳答案

您正在将 this.basefunc 设置为对 this 引用的对象的引用。

构造函数调用“run”,将值this 传递给它。此时,this 指的是正在构建的新对象。 “run”函数将同一对象的“basefunc”属性(因为 this 也会在调用“run”时引用它)设置为参数,即对象。

效果与构造函数的效果相同:

this.basefunc = this;

关于javascript - 无限原型(prototype)链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19716099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com