学习this的使用必须牢记以下两点
1、this是一个只能在函数内部使用的关键字
2、this指向调用函数的那个对象
下面我们来具体讨论一下this的具体使用方法
第一种:通过函数调用的方式------------->this指向的是全局(浏览器中就是window)
var a = 1; function Demo() { alert(this.a) } Demo(); //弹窗 1 相当于全局调用
第二种:作为对象方法来调用------------->this指向这个对象
1 var o ={}; 2 o.a = 1; 3 o.demo = function () { 4 alert(this.a) 5 }; 6 7 o.demo() //弹窗 1 o调用
第三种:作为构造函数来调用------------->即:通过new 产生一个新对象,this就指向这个对象
1 function Demo() { 2 this.a = 1 3 } 4 var o = new Demo() 5 alert(o.a) //弹窗 1 o调用
第四种:apply()/call()------------->这两个是函数对象的一个方法,this指向他们的第一个参数如果不传参数this指向全局
1 var a = 1; 2 function Demo() { 3 alert(this.a) 4 } 5 6 var o = {}; 7 o.a = 2; 8 o.demo = Demo; 9 10 o.demo.apply(o) //弹窗2 11 o.demo.apply() //弹窗1
重要的东西再说一遍
1、this是一个只能在函数内部使用的关键字
2、this指向调用函数的那个对象