Javascript 在node.js的for循环中使用类
老实说,我不知道该问什么,所以我只想补充一些细节。我来自java,所以我对类很熟悉 让我们以一个类为例,为了方便起见,将私有字段放到public中,而不使用getter和setterJavascript 在node.js的for循环中使用类,javascript,node.js,Javascript,Node.js,老实说,我不知道该问什么,所以我只想补充一些细节。我来自java,所以我对类很熟悉 让我们以一个类为例,为了方便起见,将私有字段放到public中,而不使用getter和setter class User{ public String name; public String email; } 这在某些情况下很有用,例如,如果有一组用户,那么我可以使用如下内容: for(User user: usersList){ user.name='some new value' //sin
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来实现这一点。正因为如此,您的userslist将是一个数组,您将在其中拥有您的用户。循环将用于从0到长度-1的循环。这个类将有一些类似这样的语法 var userclass={ 名称:'xyz', 地址:'地址', ……其他道具
}JavaScript允许引用对象没有的属性:您可以临时添加它们,如果您读取不存在的属性,您只会得到未定义的
。这就是JavaScript的工作原理
如果您试图在分配给不存在的属性时出错,那么考虑使用该方法,您可以在类的构造函数中应用该方法:
“严格使用”;
类用户{
建造商(姓名、电子邮件){
this.name=名称;
this.email=电子邮件;
//Seal将不允许新的属性
对象.印章(本);
}
}
const user=新用户();
user.name=“杰夫”;
console.log(用户);//显示带有“Jeff”的属性
user.nammeee=“杰夫”//产生错误
签出
及
由于userList
被认为是类型User[]
,let User
也被认为是类型let User:User你可以在一个类中使用getter和setter方法。关于代码辅助的问题实际上更多地与你的编辑器有关,而不是与JavaScript有关。我指的是类功能,因为它有助于代码辅助。IDE知道类属性,因此可以使用它进行验证…您指的是哪个IDE?如果您喜欢Java和静态类型,请查看TypeScript。Javascript是一种脚本语言,不提供这种东西。我想你误解了这个问题。
class User {
constructor(public name: string, public email: string = "") { }
/*
//shorthand for
public name: string;
public email: string;
constructor(name:string, email:string="") {
this.name = name;
this.email = email;
}
*/
}
var usersList = [
new User("Jack"),
new User("Jill"),
new User("Joe")
];
for (let user of usersList) {
user.email = user.name + "@mail.com";
}