一段js代码的研究

var derp="one";  
var Herp=function(){  
    this.derp="two";  
}  
var foo=Herp();  
alert(derp); 
 

上面这段代码执行结果是什么?one? two?

正确结果是:"two"

稍微修改一下代码如下:

var derp="one";  
var Herp=function(){  
    this.derp="two";  
}  
var foo=new Herp();  
alert(derp); 

 此时结果是:"one"

为何?

 

函数定义体内的this指向的是window,只有当用new创建这个函数的一个对象时,this才会指向函数本身。

你可能感兴趣的:(js)