gpt4 book ai didi

JavaScript 错误 : cyclic __proto__ value

转载 作者:太空宇宙 更新时间:2023-11-04 02:22:33 27 4
gpt4 key购买 nike

我想更改默认的 window.location setter 和 getter 函数。

以下代码可以成功运行。但此代码仅适用于有限区域。

var _window = window;
(function () {
window = {};
var window = {};

Object.defineProperty(window, 'location', {
get: function () { alert('called getter '); return _window.location; },
set: function () { alert('not in my house'); }
});

window.__proto__ = _window;
alert('window.location : '+ window.location);
}());

当我删除 block 时,

var _window = window;
window = {};
var window = {};

Object.defineProperty(window, 'location', {
get: function () { alert('called getter '); return _window.location; },
set: function () { alert('not in my house'); }
});

window.__proto__ = _window;
alert('window.location : '+ window.location);

我遇到了以下错误。

ERROR Error: cyclic __proto__ value

我知道在正常环境中无法重新定义不可配置的属性“位置”。我已经更改了绑定(bind) IDL 属性来测试 webkit 库中的这些代码。我该如何解决这个问题?

<小时/>

我还有一个问题。当我运行以下代码时,我遇到了同样的错误。(jsc - Javascript Core,Spidermonkey,nodejs)

var o1 = { p1: 1 };
var o2 = { p2: 2 };
o2.__proto__ = o1;

var o3 = { p3: 3 };
o3.__proto__ = o2;
o1.__proto__ = o3;

JavascriptCore shell(jsc)

Exception: Error: cyclic __proto__ value

node.js (v0.10.25)

Error: Cyclic __proto__ value

蜘蛛猴JavaScript-C24.2.0

1.js:7:0 TypeError: cyclic __proto__ value

有关系吗?谢谢^^

最佳答案

在这两种情况下,您实际上都创建了原型(prototype)链循环。
在闭包中,window 是局部变量(由于提升),因此您不会在全局 window 对象上创建原型(prototype)循环。

关于JavaScript 错误 : cyclic __proto__ value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32463963/

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