防止将属性添加到JavaScript对象

防止将属性添加到JavaScript对象,javascript,Javascript,我基本上只是想知道是否有一些标准化的方法来防止将方法/属性添加到JavaScript对象 作为一个C++程序员,当你可以让JavaScript代码在一个对象上添加属性时,你可能会遇到很多麻烦,尤其是在大型代码库中。p> 不太可能。可能有一些方法可以配置您不希望仅将新属性附加到的对象,但这些方法并不实用或标准化。作为一名javascript开发人员,我不觉得这是一个问题。我相信typescript在界面上做了一些事情,如果你开始附加它不期望的属性,它会抛出一个警告。很多javascript开发人员

我基本上只是想知道是否有一些标准化的方法来防止将方法/属性添加到JavaScript对象


<>作为一个C++程序员,当你可以让JavaScript代码在一个对象上添加属性时,你可能会遇到很多麻烦,尤其是在大型代码库中。p> 不太可能。可能有一些方法可以配置您不希望仅将新属性附加到的对象,但这些方法并不实用或标准化。作为一名javascript开发人员,我不觉得这是一个问题。我相信typescript在界面上做了一些事情,如果你开始附加它不期望的属性,它会抛出一个警告。很多javascript开发人员都不喜欢这一点,但您可能想尝试一下,ES5.1函数可以防止添加新属性,也可以防止更改现有属性

工作示例:
var o={
a:123
};
o、 b=456;
//冻结对象。
冻结(o);
//记录对象。
控制台日志(o);
//这些不起任何作用,属性不会更改,也不会添加。
o、 b=0;
o、 c=789;
//记录对象。

控制台日志(o)好的,这是JS for ya:-)如果您真的只是试图防止或检测在所有对象上使用错误的属性名分配(正如您的一条评论所建议的)的意外键入问题,那么Javascript确实不支持这一点,并且通常与您通常使用Javascript的方式不一致。正如其他地方所说,您可以使用
Object.freeze()
Object.seal()
,但这可能会妨碍正常的对象操作。如果你非常喜欢这个功能,那么也许你更喜欢使用打字脚本。啊,对了,对不起,我可能会把我的问题解释得有点奇怪。我想看看其他的回答我想要的是什么真的是不可能的。老实说,我不认为我提到的代码模糊问题有什么大不了的,至少对我个人项目来说是这样,但我可以看到当人们说:car.age=3;年龄=4岁;log(car.age)您可能还喜欢object.seal()和/或object.preventExtensions()@JonSG很好,我忘了它们。