init
This commit is contained in:
parent
06f61d8ce8
commit
f301cb744d
2271 changed files with 103162 additions and 0 deletions
|
@ -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)`. При этом, естественно, возникнет ошибка.
|
|
@ -0,0 +1,15 @@
|
|||
# Проверка синтаксиса
|
||||
|
||||
[importance 2]
|
||||
|
||||
Каков будет результат этого кода?
|
||||
|
||||
```js
|
||||
var obj = {
|
||||
go: function() { alert(this) }
|
||||
}
|
||||
|
||||
(obj.go)()
|
||||
```
|
||||
|
||||
P.S. Есть подвох :)
|
Loading…
Add table
Add a link
Reference in a new issue