gpt4 book ai didi

Javascript Object.defineProperty 在 FireFox 19.02 (MacOS) 中产生类型错误

转载 作者:行者123 更新时间:2023-11-29 17:17:31 25 4
gpt4 key购买 nike

就在今天,我试图将我的一个旧库包含在 HTML 文档中,该库使用 javascript 中的 Object.defineProperty() 方法。我很确定在以前版本的 FireFox 中它工作得很好。但是,如果我现在使用它,在 MaxOS 10.6.8 上的 FF 19.02 中,如本例所示:

var nuArray = function (values) {
for (var i in values) {this[i] = values[i]}
}
nuArray.prototype = Array.prototype;

var defaultProperties = {configurable: true, writable: true, enumerable: false, get: undefined, set: undefined, value: undefined};

Object.defineProperty(nuArray, "grep", defaultProperties)

出现以下错误

TypeError: property descriptors must not specify a value or be writable when a getter or setter has been specified @ ....

我后来添加了 valuegetset 部分,以便将它们显式设置为 undefined(它们应该是默认的,但由于这种行为开始时相当奇怪,我想确保我涵盖了所有基础)。它在 Safari 5.1.7 中运行没有问题,正如我之前提到的,我非常确定它在以前版本的 FF 中也是如此。奇怪的是,即使是现在,如果我只是将代码行复制到 FF 的控制台中,也不会抛出任何错误并且一切正常。如果我定义 valuegetset 没有任何区别。有什么明显的事情是我忽略的,或者我是否遇到了浏览器不兼容的新问题?

最佳答案

在属性描述符中,在使用属性“set”或“get”时省略“writable”属性。

关于Javascript Object.defineProperty 在 FireFox 19.02 (MacOS) 中产生类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15952926/

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