minor
This commit is contained in:
parent
9f4b8a5c98
commit
6713199c3c
1 changed files with 2 additions and 2 deletions
|
@ -204,7 +204,7 @@ admin['f'](); // Admin (dot or square brackets access the method – doesn't mat
|
|||
|
||||
The rule is simple: if `obj.f()` is called, then `this` is `obj` during the call of `f`. So it's either `user` or `admin` in the example above.
|
||||
|
||||
```smart header="Calling without an object: `this=undefined`"
|
||||
````smart header="Calling without an object: `this=undefined`"
|
||||
We can even call the function without an object at all:
|
||||
|
||||
```js run
|
||||
|
@ -220,7 +220,7 @@ In this case `this` is `undefined` in strict mode. If we try to access `this.nam
|
|||
In non-strict mode the value of `this` in such case will be the *global object* (`window` in a browser, we'll get to it later in the chapter [](info:global-object)). This is a historical behavior that `"use strict"` fixes.
|
||||
|
||||
Usually such call is an programming error. If there's `this` inside a function, it expects to be called in an object context.
|
||||
```
|
||||
````
|
||||
|
||||
```smart header="The consequences of unbound `this`"
|
||||
If you come from another programming language, then you are probably used to the idea of a "bound `this`", where methods defined in an object always have `this` referencing that object.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue