gpt4 book ai didi

javascript - 将新属性分配给内置类型实际上是非法的吗?

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

我的以下代码过去在 Chrome 中运行良好,但在最新版本 (38.0.2125.104) 中突然停止运行。

(function() {
"use strict";

var stringPrototype = String.prototype;
stringPrototype.foo = function() { this.$foo = 1234; };
var s = "abcd";
s.foo();
})();

现在我收到错误(如果您运行代码段,您将在控制台中看到错误):

Uncaught TypeError: Cannot assign to read only property '$foo' of abcd

我很想知道这是否是 Chrome 中的一个新错误,或者我一直在做的事情是否实际上是非法的。如果是非法的,是否有任何引用规范可以说明为什么会这样?

这在以前的 Chrome 版本中从未导致过错误。

最佳答案

上面的评论帮助我解决了我的问题。总结一下,我正在做的作业:

this.$foo = 1234

从不做任何事情。在较新版本的 Chrome 中,这种虚假分配实际上会导致错误。这似乎是一种改进,因为它会更快地导致故障,并且应该更早地发现潜在的错误。

因此,虽然我认为较新版本的 Chrome 会导致以前工作的代码出错,但由于我的代码从未执行过任何操作,我可以安全地删除分配,因为行为必须完全相同。

(因为所有繁重的工作都是由 Pointy 和 Derek 完成的,所以作为社区维基回答这个问题。)

关于javascript - 将新属性分配给内置类型实际上是非法的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26395257/

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