javascript中的this

释放双眼,带上耳机,听听看~!

this是Javascript语言的一个关键字。 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。 函数在不同的执行环境中this的值也跟着不同。 分一下四种

方法调用模式。

当函数作为对象的方法调用时,this指向该对象


1
2
3
4
5
6
7
8
1var num1=0;
2    var obj={};
3    obj.num1=1;
4    obj.func=function(){
5        return this.num1;
6    }  
7    alert(obj.func());//1
8

普通的函数调用模式

当函数直接调用时,this指向全局对象window。


1
2
3
4
5
6
1var num1=0;
2    var func=function(){
3        return this.num1;
4    }
5    alert(func())//0
6

当函数内部的函数用普通调用方式调用时,this仍指向全局对象window。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1var num1=0
2    var obj={};
3    obj.num1=1;
4    obj.func1=function(){
5        var  num1=2;
6        var that=this;
7        var func2=function(){
8            alert(this.num1);//0
9            alert(that.num1);//1
10            alert(num1);//2
11        }
12        func2();
13    }
14    obj.func1();
15

构造器调用模式,即使用new关键词

当使用new方式调用函数时,this指向新创建的对象。


1
2
3
4
5
6
1function Person(name){
2        this.name=name;
3    }
4    var person=new Person("向晚");
5    alert(person.name)//向晚
6

apply(),call()调用模式

apply()接收两个参数,第一个是将被绑定到this的值,第二个是参数数组


1
2
3
4
5
6
7
8
1var num1=0;
2    var func1=function(){
3         alert(this.num1);
4    }
5    var obj={num1:1};
6    func1();//0
7    func1.apply(obj);//1
8

给TA打赏
共{{data.count}}人
人已打赏
安全技术

md5 加密算法

2021-8-18 16:36:11

安全技术

C++ 高性能服务器网络框架设计细节

2022-1-11 12:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索