<commit_before>---
layout: post
title:  "this之我见"
categories: JavaScript
tags: JavaScript this
---
this是js中一个很重要的东西，但是，刚开始学习的时候感觉比较复杂。这里，我总结了一下关于我对this的了解，尤其是刷新了一下对this遇到new时的认识




## this到底指的是什么

根据js高程里面的概念，this即是：**包含当前this所在函数的执行环境。**

看到这句话应该还是一脸懵逼吧，不要急，慢慢看下面的列子。

## 例子

### 1. 先来看个最基本的this指向window的例子
```
1. var global = "glo";
2. var test = function() {
3.	console.log(this); // window
4.	console.log(window.global); // glo
5.	this.global = "modify";
6.	console.log(window.global); // modify
7. }
8. test();
```
>+ 第三行输出**window**，是因为，test()这个函数是在全局作用域中进行的调用，他的执行环境是全局环境，所以就是window。
>+ 这从第6行也可以看出来，刚开始window上global属性值为glo，然后运行了this.global语句之后，global属性就被修改为modify，这更加说明this是指向window的。

### 2. 再看看下面这个关于内部函数的例子。


```
var Test = function() {
		var closure = function() {
			console.log(this); // window
		}();<commit_msg>modify<commit_after>---
layout: post
title:  "this之我见"
categories: JavaScript
tags: JavaScript this
excerpt: this是js中一个很重要的东西
---

## this到底指的是什么

根据js高程里面的概念，this即是：**包含当前this所在函数的执行环境。**

看到这句话应该还是一脸懵逼吧，不要急，慢慢看下面的列子。

## 例子

### 1. 先来看个最基本的this指向window的例子
```
1. var global = "glo";
2. var test = function() {
3.	console.log(this); // window
4.	console.log(window.global); // glo
5.	this.global = "modify";
6.	console.log(window.global); // modify
7. }
8. test();
```
>+ 第三行输出**window**，是因为，test()这个函数是在全局作用域中进行的调用，他的执行环境是全局环境，所以就是window。
>+ 这从第6行也可以看出来，刚开始window上global属性值为glo，然后运行了this.global语句之后，global属性就被修改为modify，这更加说明this是指向window的。

### 2. 再看看下面这个关于内部函数的例子。


```
var Test = function() {
		var closure = function() {
			console.log(this); // window
		}();
{'fraction_non_alphanumeric': 0.1682360326428123, 'fraction_numerical': 0.013810420590081607, 'mean_word_length': 5.350597609561753, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7556011', 'n_tokens_mistral': 911, 'n_tokens_neox': 981, 'n_words': 105}