В еще один вопрос, у кого-то было неправильное определение класса, включающее код вроде:
var myClass = function() {
...
this.name() = function() { ... };
}
Очевидная ошибка заключается в том, что метод должен быть определен с помощью this.name = ...
, без круглых скобок после name
. Когда вы вызываете конструктор, вы получаете ошибку, потому что this.name
не определен. Я создал более простой пример в консоли:
foo() = 3; // Causes: ReferenceError: foo is not defined
function foo() {};
foo() = 3; // Causes: ReferenceError: Invalid left-hand side in assignment
Есть ли какой-либо контекст, в котором функция могла бы возвращать то, что может быть назначено? Я не думаю, что у Javascript есть ссылки, такие как С++ или PHP, которым можно назначить. Почему это не приводит к синтаксической ошибке, а не к различным ошибкам в зависимости от того, определена ли функция или нет?