方法中,this关键字引用其所属的对象。
this指的是全局对象在函数中。
this引用全局对象在函数中。
在严格模式下,this是未定义的在事件中。
this指的是接收事件的元素像call()和apply()这样的方法,可以将其引用到任何对象。
二、方法上下文
在对象方法中,this指代方法的user。
当调用user.getName()时,函数内部将this绑定到user对象:
例:
- <!DOCTYPE html>
- <html>
- <title>项目</title>
- <body style="background-color: aqua;">
- <p>在此示例中,<b> user </b>对象是<b> getName </b>方法的所有者:</p>
- <script>
- // 创建一个对象
- var user = {
- firstName: "基础教程",
- lastName: "baidu.com",
- age: 5,
- getName: function() {
- return this.firstName + " " + this.lastName;
- }
- };
- document.write(user.getName());
- </script>
- </body>
- </html>
这里user对象是所有者getName的方法。
1. 全局上下文
在全局执行上下文中(在任何函数之外),this无论是否处于严格模式下,都引用全局对象。
示例
- <!DOCTYPE html>
- <html>
- <title>项目</title>
- <body style="background-color: aqua;">
- <p>在全局执行上下文中(在任何函数之外),这指的是全局对象:</p>
- <p>访问调试在您的浏览器按F12,并选择"控制台"在调试器菜单:</p>
- <script>
- //在Web浏览器中,窗口对象也是全局对象:
- console.log(this === window); // true
- a = 50;
- console.log(window.a); // 50
- this.b = "baidu.com";
- console.log(window.b) // "nhooo.com"
- console.log(b) // "nhooo.com"
- </script>
- </body>
- </html>