diff --git a/深入探索 JavaScript/JavaScript 执行.md b/深入探索 JavaScript/JavaScript 执行.md index 28ab15f..6745478 100644 --- a/深入探索 JavaScript/JavaScript 执行.md +++ b/深入探索 JavaScript/JavaScript 执行.md @@ -27,4 +27,18 @@ JavaScript 引擎会在下一次执行宿主发起的宏观任务之前先执行 ## this 关键字 -普通函数的 this 的最终指向的是那个调用它的对象,这是因为在调用对象内的函数的表达式(如:**对象.方法 o.a()**)返回的并非是函数本身,而是一个 Reference 类型,该类型由两部分组成:一个对象和一个属性值, \ No newline at end of file +普通函数的 this 的最终指向的是那个调用它的对象,举一个例子说明 + +```javascript +function showThis(){ + console.log(this); +} +var o = { + showThis: showThis +} +showThis(); // global +o.showThis(); // o +``` + + +在以上代码中 `o.showThis()` 表达式返回的并非是函数本身,而是一个 Reference 类型,该类型由两部分组成:一个对象和一个属性值,在调用时时被解引用,获取到真正的信息,在上面的代码中 Reference 类型中的对象被当作 this 值,传入了执行函数时的上下文当中,这也就是为什么 this 会指向调用它的那个对象。 \ No newline at end of file