学习笔记——Javascript中的this
this, 在JS中this与C++,Java的概念是不一样的,所以常有误解,出现错误,尤其在闭包中。其实只要记着一句话就能明白JS中的this,this对象并不是在定义时绑定,而是在执行时绑定
匿名函数都有全局性,通常this指向widow,但对于编写闭包的方式不用,这一点就不会这么明显
1 var name = "The Window"; 2 var object = { 3 name : "My Object", 4 getNameFunc : function(){ 5 return function(){ 6 return this.name; 7 }; 8 } 9 }; 10 alert(object.getNameFunc()()); //The Window
当然,可以通过call()或apply()改变函数执行环境,this就会指向其他对象,或者用将this保存在一个变量中,让闭包给以访问到该变量即可
var name = "The Window"; var object = { name : "My Object", getNameFunc : function(){ var This = this; return function(){ return This.name; }; } }; alert(object.getNameFunc()()); //My Object

浙公网安备 33010602011771号