首页 > 代码库 > JavaScript this的理解
JavaScript this的理解
一直对js的this不怎么理解,最近看了JavaScript 语言精髓的相关章节,有点清晰的理解了,记录记录
/* 来自: JavaScript 语言精髓 方法:当一个函数被定义为对象的一个属性时,我们称它为一个方法. this : 在函数访问this时,this被绑定到了 全局对象. *///全局函数var log = function(msg){ document.writeln("<br>" + msg + "<br>");};log("**************thistest.js***************");//定义一个全局变量var value = http://www.mamicode.com/100;"add:value = "http://www.mamicode.com/+ value); // 输出 add:value = 11"add:this.value = "http://www.mamicode.com/+ this.value); // 输出 100>下面定义一个对象
//对象var myObj = { //对象的属性 value:0, //方法 increment:function(inc){ //此时访问this时,this绑定的时myObj对象 log("myObj.increment():myObj.value = "http://www.mamicode.com/+ this.value);//输出 myObj.value 的值>有时候我们在方法内部会定义函数,那么函数怎么调用对象属性呢,如果在函数内容直接用this是访问不到对象的
//对象var myObj = { //对象的属性 value:0, //方法 increment:function(inc){ //此时访问this时,this绑定的时myObj对象 log("myObj.increment():myObj.value = "http://www.mamicode.com/+ this.value);//输出 myObj.value 的值"myObj.increment.inFun:this.value = "http://www.mamicode.com/+ this.value);>为了能在inFun函数内访问到myObj对象,我们先把myObj对象保存在一个变量里,
//对象var myObj = { //对象的属性 value:0, //方法 increment:function(inc){ //把当前对象myObj引用保存在self变量,随后的函数就可以访问self 来代替访问myObj对象 var self = this; //此时访问this时,this绑定的时myObj对象 log("myObj.increment():myObj.value = "http://www.mamicode.com/+ this.value);//输出 myObj.value 的值"myObj.increment.inFun:this.value = "http://www.mamicode.com/+ this.value);"myObj.increment.inFun:myObj.value = "http://www.mamicode.com/+ self.value);>给 myObj增一个double方法
myObj.double = function(){ var self = this; var helper = function(){ //此处不能用 this.value 访问到myObj.value的值 //add函数前的this可以省略,也可以用 this.add(a,b); self.value = http://www.mamicode.com/add(self.value, self.value);>调用double方法,即可使用myObj.value的值翻倍
JavaScript this的理解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。