javascript中作用于和new、this、var关键字
偶然看到javascript中有new关键字使用,且在用与不用的时候结果不尽相同
<script> var temp = 1; function Test(){ this.temp = 10;//NO.1 alert(this.temp);//NO.2 alert(temp;)//NO.3 } new Test();//NO.4 Test();//NO.5 </script>
如上代码在执行的时候会弹出四次,结果是:
10、1、10、10
如果把NO.1处代码改为temp=10,结果变为:
undefined、10、10、10
下边根据自己理解作如下分析:
首先javascript中也有对象,有自己的属性,默认对象window,当在方法外部使用var定义变量时相当全局变量,而在方法内部使用var定义的变量相当局部变量。
同时也可以使用new关键字生成对象,并作为当前操作对象,内部使用的this关键字只对该对象起作用;
因此上边例子可做如下理解:
通过var定义的temp变量属于全局变量,所以方法Test中NO.3处弹出是全局变量temp的值;
但是this.temp有两种情况,当我们通过NO.5处方式调用的时候,this代表window对象操作的是全局变量中的temp变量,然而我们通过NO.4处方式调用的时候,this指定的是当前对象,this.temp针对当前对象有效。
所以上边程序代码在不同情况会有不同的执行结果。
相关推荐
yyyxxxs 2020-05-05
zrtlin 2020-11-09
xuebingnan 2020-11-05
wikiwater 2020-10-27
heheeheh 2020-10-19
Crazyshark 2020-09-15
softwear 2020-08-21
ZGCdemo 2020-08-16
jczwilliam 2020-08-16
littleFatty 2020-08-16
idning 2020-08-03
jinxiutong 2020-07-26
lanzhusiyu 2020-07-19
Skyline 2020-07-04
xiaofanguan 2020-06-25
Aveiox 2020-06-23