Итак, я делаю парсер выражений в JavaScript и хотел бы знать: есть ли способ назначить функцию объекта логическому/математическому оператору, чтобы он вызывался каждый раз, когда оператор используется на этом объекте?Как назначить логический/математический оператор функции объекта?
Я знаю, что, когда вы пытаетесь объединить объект в строку, он автоматически вызывает метод .toString()
объекта.
Например, представьте, что у вас были объекты с атрибутом this.number
. Я хотел, чтобы быть в состоянии сделать следующее:
function MyObject(number) {
this.number = number;
}
var obj1 = new MyObject(2);
var obj2 = new MyObject(3);
obj1 *= obj2;
obj2 *= 3;
obj1.number; // Would return 6.
obj2.number; // Would return 9.
В этом случае, я бы переопределил *=
оператора таким образом, чтобы каждый раз он был призван, чтобы присвоить значение экземпляра MyObject
было бы умножить this.number
значения этого экземпляра по значению справа (значение примитивного числа или значение this.number
другого экземпляра).
Есть ли способ добиться этого?
Любая помощь была бы замечательной!
Спасибо :-)
http://stackoverflow.com/questions/19620667/javascript-operator- перегрузка – 1000111