This commit is contained in:
Ilya Kantor 2014-11-16 01:40:20 +03:00
parent 962caebbb7
commit 87bf53d076
1825 changed files with 94929 additions and 0 deletions

View file

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