老实说,我不知道要问我的情况,所以我只会添加一些细节。我来自java,所以我熟悉类。
让我们以一个类为例,为了方便起见,将私有字段放到 public 中,没有 getter 和 setter
class User{
public String name;
public String email;
}
这在某些情况下很有用,例如有一组用户,然后我可以使用以下内容:
for(User user: usersList){
user.name='some new value'
//since user is a class, code assist, suggests the name and also if I have user.namee it throws an error
}
现在进入javascript,我可以获得一个数组并执行类似的操作
for (let user of usersList){
user.name='some new value'
//however if I type user.nammee no error is thrown and code assist does not know what to recomment
}
我想现在你可能明白了。我希望它可以更轻松地通过代码辅助正确获取对象字段,并避免由于属性名称键入错误而导致的键入错误。我所看到的 Javascript 类只有方法……那么在这种情况下我可以应用什么?
JavaScript 允许引用对象没有的属性:您可以临时添加它们,如果您读取不存在的属性,您只需获取undefined
. 这就是 JavaScript 的工作方式。
如果您想在尝试分配给不存在的属性时出现错误,请考虑使用该Object.seal
方法,您可以在类的构造函数中应用该方法:
"use strict";
class User{
constructor (name, email) {
this.name = name;
this.email = email;
// Seal will disallow new properties
Object.seal(this);
}
}
const user = new User();
user.name = "Jeff";
console.log(user); // Shows property with "Jeff"
user.nammmeeee = "Jeff"; // Produces error
确保使用严格模式 ( "use strict"
) 否则这些错误将被抑制。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句