Tôi có lớp Rational này mà có một phương pháp cho từng hoạt động (thêm, mult vv)Enable một lớp Rational để xử lý khai thác toán
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
Tôi có thể làm cho nó nhiều hơn "tự nhiên" ví dụ để bật console.log(a * b)
?
Javascript không hỗ trợ điều hành quá tải. Bạn có thể thay thế 'print()' bằng 'toString'. – georg
Một số dạng eval và thay thế chuỗi sẽ hoạt động, chẳng hạn như: console.log (Chức năng ("a * b" .replace ("* b", ". Mult (b) .print()"))) Có là [một] (http://stackoverflow.com/a/1390694/1113772) hoặc [hai] (http://stackoverflow.com/questions/14147290/how-can-i-set-loop-imacros-by- javascript) các câu hỏi về macro có thể hữu ích. –