函数 或 方法 声明的位置不同,会影响this关键字的含义。
通常来说,this指向当前函数所操作的对象。
例子如下:
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>this关键字</title>
6 </head>
7 <body>
8 <script>
9 /*
10 window.onload 加载事件在页面内容加载完成之后立即执行相应的函数
11 this.person这里的this指document对象
12 而this.name和this.nibbles这里的this指的是person对象
13 */
14 window.onload=function (ev){
15 this.person.eat();
16 }
17
18 var person={};//字面量创建对象
19
20 //设置字面量对象属性
21 person.name="jackSon"; /*名字=杰克逊*/
22 person.age=18; /*年龄=18*/
23 person.nibbles="热狗"; /* 食物 */
24 /*先创建一个匿名函数,先执行函数体的代码,然后再赋值给person.eat*/
25 person.eat=function(){ /* 运动*/
26 var value=this.name+"最喜欢吃"+this.nibbles; /*name 最喜欢吃 热狗*/
27 document.write(value+‘<br>‘); /*写出 value 赋的值,并换行显示 */
28 document.write(‘正在吃饭‘); /* 写出‘正在吃饭’ */
29 }
30 </script>
31 </body>
32 </html>
本例子有3处使用了this关键字。
第一处调用对象方法,this.person.eat(); 这里的this是指document对象。
第二三处在方法内部使用var value=this.name+‘的饭量是‘+this.appetite; this指向person对象。
