var name = "The Window"; var obj = { name: "My Object", getNameFunc: function () { //this是指obj对象 return function () { //this是指window对象 return this.name; }; } }; alert(obj.getNameFunc()());
var name = "The Window"; var object = { name: "My Object", getNameFunc: function () { var that = this; return function () { return that.name; }; } }; alert(object.getNameFunc()());
this,一般而言,在JavaScript中,this指向函数执行时的当前对象,但是当没有明确的对象的时候,this就是指向全局对象window。
一般,函数内部的变量是运行完即销毁的,闭包函数可以访问父函数的变量,可使父函数的变量一直存在于内存中。通常闭包函数的this指向window。