JS中this对象的理解

1.this在普通对象中的应用:

this指向调用它的对象

例子1:

var obj = {
name: "zhangsan",
id: 111222,
sex: "male",
introduce: function (){
console.log( this.name);
return this.name;
}
}
obj.introduce(); //张三 此时,this指向调用它的对象即obj。


例子2:

window.color = "red";
var o = {color: "blue"};

function sayColor(){
alert ( this.color);
}
sayColor(); //"red" 此时this指向调用它的全局window对象

o.saycolor = sayColor; //给o对象中添加sayColor方法
o.saycolor() //"blue" 此时this指向调用它的o对象


2.this在闭包中的应用:

匿名函数的执行环境具有全局性,因此其this通常指向window。但在以下写法中可能不是很明显

var name = "the window";
var obj = {
name: "my object",
getNameFunc : function(){
return function(){
return this.name;
}
}
};
alert(obj.getNameFunc()()); //"the window"
        解析:以上代码先创建了全局变量name,又创建了包含name属性的对象。对象中含包含getNameFunc方法。该方法返回一个匿名函数,而匿名函数又返回this.name.

    //执行过程,调用obj.getNameFunc()首先返回匿名函数function(){return this.name;},而匿名函数又返回this.name,因此调用obj.getNameFunc()()会立即返回字符串"my object".

如果我们想让this指向obj,需要做如下修改

var name = "the window";
var obj = {
name: "my object",
getNameFunc : function(){
var that = this;
return function(){
return that.name;
}
}
};
alert(obj.getNameFunc()()); //"my object"  将this强行绑定到变量that上,则that指向obj。
   
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值