JS经典理解例子
1. var name = 'the window'; var obj = { name:"my obj", getNameFunc:function(){ return function(){ return this.name; } } }; alert(obj.getNameFunc()());//问输出结果是多少 答案:the window 理解:这里的obj.getNameFunc()返回了一个function,然后再再外面调用这个function,这时候调用function的是window对象,所有输出the window 2. var name = 'the window'; var obj = { name:"my obj", getNameFunc:function(){ var that = this; return function(){ return that.name; } } }; alert(obj.getNameFunc()());//问输出结果是多少 答案:my obj 理解:返回的这个function是getNameFunc的一个内部函数,而他使用了外部函数定义的变量,所以产生了闭包,再调用执行return that.name;的时候