首页 > 解决方案 > Java 的类概念和语法,尤其是封装和成员访问,与 Javascript 相比如何?

问题描述

我对 Java 了解很多,但我对 Javascript 完全陌生。我知道一些关于语言本身的背景信息,但仅此而已。现在我使用某个 API,因此我需要 Js。所以我下载了 Node.js 并开始编写一些代码。我已经意识到 Java 有很多不同之处,但我没有找到任何好的解决方案。这是一个例子:

public class Client {

private String username;
private String password;
private String host;
private final int port = 25565;

public Client(String username, String password, String host) {
    this.username = username;
    this.password = password;
    this.host = host;
}

public String getUsername() {
    return username;
}

public int getPort() {
    return port;
}

public String getPassword() {
    return password;
}

public String getHost() {
    return host;
}
}

这是 oop 的普通 Java 类。有人可以给我一个例子,如何在 Js 中制作这样的东西以及如何访问这样的类/文件(在 js 中)?

标签: javascriptjavanode.jsclassencapsulation

解决方案


我不会给出与 sami 相同的答案,但是还有另一种在 JS 中创建类的方法,它允许变量只能由父级访问:

function Client(username, passwd, host) {
    const port = 25565; //this is private

    this.getUsername = () => username;  //this is public
    this.getPort = () => port;
    this.getPassword = () => passwd;
    this.getHost = () => host;
}

var client = new Client("john doe", "pass", "www.example.com");
client.getUsername();   //returns "john doe"

在 JS 中,类只不过是函数。类的成员函数是闭包。另请注意,由于箭头函数以及Client构造函数的参数如何被此范围内的闭包访问,代码是多么简洁。您还可以修改它们的值,就像您在此范围内letvar在此范围内声明它们一样。


推荐阅读