最近在看JAVASCRIPT权威指南5
第143页讲作为方法的函数,this有3种指向
1 当一个函数作为方法调用时,this指向掉用该方法的对象
2 当一个函数作为函数调用的时候,this指向全局对象
3当一个嵌套的函数(作为函数)在一个包含的函数之中调用,而这个包含的函数是作为方法调用的,这也是成立的:this关键字在包含的函数中有一个值,但他却(不太直观地)引用嵌套的函数体的内部的全局对象.
前2个都简单,
第3个情况,不明白,而且我自己也举不出例子来,第3种情况我是完全抄写的书上的,有没有高手来解答下,最好举个例子,形象点!!!!
第143页讲作为方法的函数,this有3种指向
1 当一个函数作为方法调用时,this指向掉用该方法的对象
2 当一个函数作为函数调用的时候,this指向全局对象
3当一个嵌套的函数(作为函数)在一个包含的函数之中调用,而这个包含的函数是作为方法调用的,这也是成立的:this关键字在包含的函数中有一个值,但他却(不太直观地)引用嵌套的函数体的内部的全局对象.
前2个都简单,
第3个情况,不明白,而且我自己也举不出例子来,第3种情况我是完全抄写的书上的,有没有高手来解答下,最好举个例子,形象点!!!!
解决方案 »
- ExtJs定时器问题
- 关于一个jq 的指定索引插入的问题
- 高手求教url转换
- 如何得到 src 链接上面的内容呢?
- div里面有table时获取div个数不对?
- 求助:使用eclipse+tomcat进行jsp开发出现问题
- 为什么window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP)无效?
- 为什么document.form1.submit();在jsp页面老提示属性或对象不存在啊??
- javascript用什么编译环境比较好
- 在哪里设置禁止javascript?
- 如何实现通过链接跳转页面,并实现iframe数据访问
- JS中鼠标滑动到链接上出现一个图层,滑过图层消失
javascript的设计虽然不是很严格的符合面向对象的定义,但大部分还是以对象为基础的
function f(){
alert(this);//这个this就是第一种情况
function g(){
alert(this);//第三种情况,和前面的this不是同一个值,相当于第二种情况
}
var obj=new Object();
obj.h = function(){
alert(this);//第三种情况,this是obj,相当于第一种情况
}
g();
obj.h();
}
简单的说,一个函数内的this和其内嵌的函数内的this是不同意义的