diff --git a/03-JavaScript基础/10-作用域.md b/03-JavaScript基础/10-作用域.md index adda68a..c04159a 100644 --- a/03-JavaScript基础/10-作用域.md +++ b/03-JavaScript基础/10-作用域.md @@ -135,8 +135,6 @@ ``` - - ## 我的公众号 想学习**代码之外的技能**?不妨关注我的微信公众号:**千古壹号**(id:`qianguyihao`)。 @@ -145,6 +143,3 @@ ![](http://img.smyhvae.com/2016040102.jpg) - - - diff --git a/03-JavaScript基础/11-this.md b/03-JavaScript基础/11-this.md index 7bf6507..2ad6cff 100644 --- a/03-JavaScript基础/11-this.md +++ b/03-JavaScript基础/11-this.md @@ -14,14 +14,51 @@ - 4.使用call和apply调用时,this是指定的那个对象 -针对第1和第2条的举例: + +**针对第1条的举例**: + +```javascript + function fun() { + console.log(this); + console.log(this.name); + } + + var obj1 = { + name: "smyh", + sayName: fun + }; + + var obj2 = { + name: "vae", + sayName: fun + }; + + var name = "全局的name属性"; + + //以函数形式调用,this是window + fun(); //可以理解成 window.fun() +``` + + +打印结果: + +``` + Window + 全局的name属性 +``` + + +上面的举例可以看出,this指向的是window对象,所以 this.name 指的是全局的name。 + + +**第2条的举例**: ```javascript function fun() { + console.log(this); console.log(this.name); } - var obj1 = { name: "smyh", sayName: fun @@ -33,17 +70,20 @@ }; var name = "全局的name属性"; - //obj.sayName(); - - //以函数形式调用,this是window - //fun(); //可以理解成 window.fun() //以方法的形式调用,this是调用方法的对象 obj2.sayName(); ``` -打印结果:`vae`。 +打印结果: + +``` + Object + vae +``` + +上面的举例可以看出,this指向的是 对象 obj2 ,所以 this.name 指的是 obj2.name。 **箭头函数中this的指向**: