5

私は、各操作(add、multなど)のメソッドを持つこのRationalクラスを持っています

function Rational(nominator, denominator){
    this.nominator = nominator;
    this.denominator = denominator || 1;    
}

Rational.prototype = {
    mult: function(that) {
        return new Rational(
            this.nominator * that.nominator,
            this.denominator * that.denominator
            );
    },
    print: function() {
        return this.nominator + '/' + this.denominator;
    }
};

var a = new Rational(1,2),
    b = new Rational(3);

console.log( a.mult(b).print() ); // 3/2

たとえば、有効にするなど、より「自然」にすることはできconsole.log( a * b )ますか?

4

3 に答える 3

0

アイデアとして、パーサーを自分で書いてみることができるので、次のように書きます。

console.log(R("a * b")); 

ここで、R は a * b を a.mult(b) に変換し、次に eval の this を変換する関数です。

于 2013-06-14T12:15:07.010 に答える