Node js中的实体类的等式和其他方法

我是Node js的新手。 所以,我对OOP有一些基本的疑问。 我已经定义了一个对象

function Person(name, age, address) { this.name = name; this.age = age; this.address = address; } 

现在,如果我想添加像equals(),hashCode()等人的方法,我在哪里可以做到这一点?

我熟悉JAVA语言,当我们用来定义一个POJO类的时候,我们也有时会用它来添加一些方法。

最终,我想要做这样的事情

 var p1 = new Person("person1", 18, "XYZ"); var p2 = new Person("person1", 18, "XYZ"); if(p1.equals(p2)) { ..... } 

我怎样才能做到这一点?

这样的东西的JavaScript并不复杂。 您可以简单地在原型上定义一个equals()方法。 当然,决定两个对象是如何相等的是一个可能具有挑战性的业务逻辑问题。

有关如何开始的简单想法,请考虑:

 function Person(name, age, address) { this.name = name; this.age = age; this.address = address; } Person.prototype.equals = function(p) { // this ignores things you shouldn't like case sensitivity and string/number conversiosn return this.name === p.name && this.age === p.age && this.address === p.address } var p1 = new Person("Mark", 30, "1234 Main Street") var p1_1 = new Person("Mark", 30, "1234 Main Street") var p2 = new Person("Steve", 29, "201 B Street") p1.equals(p2) // false p1.equals(p1_1) // true 

当然,如果你用真实世界的数据来做这件事,如1234 Main Street === 1234 Main st. 以及John Smith === john h. smith John Smith === john h. smith ,但那些超越语言问题。