从阮老师博客的一道测试题说起:
代码段一:
var name = "The Window"; var object = { name : "My Object", getNameFunc : function(){ return function(){ return this.name; }; } }; alert(object.getNameFunc()());
代码段二:
var name = "The Window"; var object = { name : "My Object", getNameFunc : function(){ var that = this; return function(){ return that.name; }; } }; alert(object.getNameFunc()());
这两段代码是为了巩固javascript中闭包的用法,但是如果不了解javascript中this的用法的话,很难理解这两段代码的真正意思。
从这个例子入手,首先了解javascript中this的指向。
This
1、this的指向是由它所在函数调用的上下文决定的,而不是由它所在函数定义的上下文决定的;
2、当一个函数作为函数而不是方法来调用的时候,this指向的是全局对象(也就是说当出现 [对象].[函数名] 时,this指向是[对象])。
JavaScript this 局部变量全局变量 作用域 作用域链 闭包,布布扣,bubuko.com
JavaScript this 局部变量全局变量 作用域 作用域链 闭包
原文:http://www.cnblogs.com/wangyuanliang/p/3889762.html