1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-24 18:32:22 +00:00

Merge pull request #1055 from codeudan/fix/this

docs: 修正已知的 this 术语错误
This commit is contained in:
Ruan YiFeng 2021-05-19 03:02:15 +08:00 committed by GitHub
commit 05031368ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 2 additions and 2 deletions

View File

@ -253,7 +253,7 @@ point.hasOwnProperty('toString') // false
point.__proto__.hasOwnProperty('toString') // true
```
上面代码中,`x``y`都是实例对象`point`自身的属性(因为定义在`this`变量上),所以`hasOwnProperty()`方法返回`true`,而`toString()`是原型对象的属性(因为定义在`Point`类上),所以`hasOwnProperty()`方法返回`false`。这些都与 ES5 的行为保持一致。
上面代码中,`x``y`都是实例对象`point`自身的属性(因为定义在`this`对象上),所以`hasOwnProperty()`方法返回`true`,而`toString()`是原型对象的属性(因为定义在`Point`类上),所以`hasOwnProperty()`方法返回`false`。这些都与 ES5 的行为保持一致。
与 ES5 一样,类的所有实例共享一个原型对象。

View File

@ -599,7 +599,7 @@ JavaScript 语言存在一个顶层对象,它提供全局环境(即全局作
- 浏览器和 Web Worker 里面,`self`也指向顶层对象,但是 Node 没有`self`
- Node 里面,顶层对象是`global`,但其他环境都不支持。
同一段代码为了能够在各种环境,都能取到顶层对象,现在一般是使用`this`变量,但是有局限性。
同一段代码为了能够在各种环境,都能取到顶层对象,现在一般是使用`this`关键字,但是有局限性。
- 全局环境中,`this`会返回顶层对象。但是Node.js 模块中`this`返回的是当前模块ES6 模块中`this`返回的是`undefined`
- 函数里面的`this`,如果函数不是作为对象的方法运行,而是单纯作为函数运行,`this`会指向顶层对象。但是,严格模式下,这时`this`会返回`undefined`