2016-06-20 4 views
0

私は次のようなクラスを持っているとしましょう。どのようにjavascriptのクラスの平等を比較するには?

export const MIN_EXPERIENCE = 0; 
export const MAX_EXPERIENCE = 100; 

export class Character { 
    constructor(experience=0) { 
    this._experience = experience; 
    } 
} 

私は2つの文字を比較し、どちらが大きいかを見たいと思います。これはより多くの経験を持つ人によって定義されます。 Pythonのような言語で

const lowLevelCharacter = new Character(MIN_EXPERIENCE); 
const highLevelCharacter = new Character(MAX_EXPERIENCE); 

console.log(lowLevelCharacter < highLevelCharacter); // should return `true`. 

、これは__eq____gt__、または__lt__ "dunder" メソッドの使用を介して実行される可能性があります。しかし、私はes6とes7のドキュメントにこの同じ概念が含まれているとは思っていません。

これはJavaScriptでどのように実装する必要がありますか?

+0

javascriptのためのパイプではそのような事を、あなたはlessThen()メソッドをimplenentする必要が – Thorarins

答えて

2

具体的な比較があるので、独自のコンパレータを作成してください。

文字のプロトタイプメソッド書く:

Character.prototype.higherLevelThan = function(character) { 
    return this._experience > character._experience 
} 

用途:

highLevelChar.greaterLevelThan(lowLevelChar) // true 
lowLevelChar.greaterLevelThan(highLevelChar) // false 
関連する問題