935 B
935 B
Ошибка!
Попробуйте:
//+ run
var obj = {
go: function() { alert(this) }
}
(obj.go)() // error!
Причем сообщение об ошибке в большинстве браузеров не даёт понять, что на самом деле не так.
Ошибка возникла из-за того, что после объявления obj
пропущена точка с запятой.
JavaScript игнорирует перевод строки перед скобкой (obj.go)()
и читает этот код как:
var obj = { go:... }(obj.go)()
Интерпретатор попытается вычислить это выражение, которое обозначает вызов объекта { go: ... }
как функции с аргументом (obj.go)
. При этом, естественно, возникнет ошибка.