update
This commit is contained in:
parent
962caebbb7
commit
87bf53d076
1825 changed files with 94929 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)`. При этом, естественно, возникнет ошибка.
|
15
1-js/6-objects-more/1-object-methods/2-check-syntax/task.md
Normal file
15
1-js/6-objects-more/1-object-methods/2-check-syntax/task.md
Normal file
|
@ -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