<html>
<script type="text/javascript">
/*作为普通函数来调用时,this的值指向window,
准确的说,this为null,但被解释成window
alert(window.xx);
function t(){
this.xx = 2;
}
t();
alert(window.xx);
*/
/*作为对象的方法来调用
this指向方法的调用者,就是该对象
var obj = {xx:11,yy:22,t:function(){alert(this.xx);}};
obj.t();
var dog = {xx:33};
dog.t = obj.t;
dog.t();
*/
/*this作为方法调用时,this指向其调用者,即母体对象,
不管被调用函数声明时属于方法还是属于函数
var dog = {xx:33};
show = function(){
alert(‘show=‘ +this.xx);
}
dog.t = show;
dog.t();
*/
/*函数作为构造函数调用时
js中没有类的概念,创建对象是用构造函数完成
或者直接用json格式来创建对象
new对象发生的步骤
a:系统创建空对象{},空对象的constructor属性指向构造感受
b:把函数的this指向该空对象
c:执行该函数
d:返回该对象
*/
function Pig(){
this.age = 2;
return ‘a‘;
}
var pig = new Pig();
//返回Pig对象,因为函数作为构造函数运行时,
//return的值是忽略的,还是返回对象
</script>
</html>this关键字
原文:http://www.blogjava.net/yangjunwei/archive/2014/12/07/421151.html