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)
错误类型
原因
在 Strict_mode
下, 当试图给一个symbol,string,number或者一个boolean类型的数据创建一个属性时就会报 TypeError
, 任何 Primitive 值都不允许有property.
这个问题可能是由一个错误的值被放在了一个错误的地方导致的, 或者预期String
或Number
的对象变体
示例
错误的情况
'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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论