TypeError: can't assign to property "x" on "y": not an object - JavaScript 编辑

信息

TypeError: can't assign to property "x" on {y}: not an object (Firefox)
TypeError: Cannot create property 'x' on {y} (Chrome)

错误类型

TypeError.

原因

Strict_mode下, 当试图给一个symbol,string,number或者一个boolean类型的数据创建一个属性时就会报 TypeError, 任何 Primitive 值都不允许有property.

这个问题可能是由一个错误的值被放在了一个错误的地方导致的, 或者预期StringNumber的对象变体

 

示例

错误的情况

'use strict';

var foo = "my string";
// 下面这行代码在非严格模式下不会执行.
foo.bar = {}; // TypeError: can't assign to property "bar" on "my string": not an object

如何正确使用

有两种方式, 第一种修复这部分代码阻止primitive被用于这种情况, 或者可以通过使用对象构造器创建来修复.

'use strict';

var foo = new String("my string");
foo.bar = {};

页面相关

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:75 次

字数:2844

最后编辑:8年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文