1 <!DOCTYPE html> 2 <html> 3 ????<head> 4 ????????<meta charset="UTF-8"> 5 ????????<title></title> 6 ????????<script type="text/javascript"> 7 ?????????8 ????????????/* 9 ?????????????* 解析器在调用函数每次都会向函数内部传递进一个隐含的参数,10 ?????????????* ????这个隐含的参数就是this,this指向的是一个对象,11 ?????????????* ????这个对象我们称为函数执行的上下文对象12 ?????????????* ????13 ?????????????* ?根据函数的调用方式的不同,this会指向不同的对象14 ?????????????* ????????1.以函数的形式调用时,this永远都是window15 ?????????????* ????????2.以方法的形式调用时,this就是调用方法的那个对象16 ?????????????*/17 ????????????18 ????????????19 ????????????function fun(){20 ????????????????console.log(this);//[object Window]21 ????????????}22 ?????????????23 ????????????fun();24 ????????????25 ????????????//-----------------------------------------------------------------------------------26 ????????????27 ????????????function fun2(){28 ????????????????console.log(this);29 ????????????????console.log(this.name);//孙悟空30 ????????????}31 ????????????32 ????????????33 ????????????//创建一个对象 ?34 ????????????var obj = {35 ????????????????name:"孙悟空",36 ????????????????sayName:fun237 ????????????};38 ????????????39 ????????????console.log(obj.sayName == fun2);//true40 ????????????41 ????????????//调用的是同一个函数,结果却不同,根据函数的调用方式的不同,this会指向不同的对象42 ????????????obj.sayName(); //[object Object] 43 ????????????44 ????????????fun2();//[object Window]45 ????????????46 ?????????????47 ????????????48 ????????</script>49 ????</head>50 ????<body>51 ????</body>52 </html>
JS基础_this
原文地址:http://www.cnblogs.com/ZHOUVIP/p/7726232.html