西游奇缘1下载:改变javascript函数内部this指针指向的三种方法 详细出处参考:http://www.jb51.net/article/23170.htm

来源:百度文库 编辑:九乡新闻网 时间:2024/07/08 18:24:51
在查了大量的资料后,我总结了下面的三条规则,这三条规则,已经可以解决目前我所遇到的所有问题.规则0:函数本身是一个特殊类型,大多数时候,可以认为是一个变量。 复制代码 代码如下:function a() { alert(this); } 
或者 var a = function() { alert(this); } 
都可以认为是创建了一个变量,这个变量的值就是一个函数。 
规则1:如果一个函数,是某个对象的key 值,那么,this就指向这个对象。 这个规则很好理解: 
复制代码 代码如下:var a = function(obj) { alert(this == obj); } 
var o = {}; o.afun = a; o.afun(o); //true 

函数就是一个变量,但是可以绑定到某个对象的下面,并且 this 就会指向 o 对象。 这里必须要注意,没有被绑定的对象,默认this 指向window 对象。 举几个例子: 复制代码 代码如下:function a() { //this == window } 
function a() { //this == window function b() { //this == window } } 
还必须注意的是,绑定没有传递性,比如上面的嵌套的函数,a绑定到 o 对象,那么就影响了a函数, 而b 还是指向到window。 
规则2:如果函数new 了一下,那么就会创建一个对象,并且this 指向 新创建的对象。 

var o = new a(); 这个时候,o 不再是个函数,而实际上,可以认为是这样的一个过程。 创建一个对象 var o = {}; 然后,把this 指向 o,通过this 把 o 给初始化了。 
规则3:通过apply 可以改变this 的指向 
这个apply 的绑定就更加的灵活了,实际上,apply的功能和下面的功能差不多。 复制代码 代码如下:var a = function (obj) { alert(this == obj); }; obj.fun = a; obj.fun(obj);//true 
简单的,可以a.apply(obj, [obj]); // true 
javascript 的this 可以简单的认为是 后期绑定,没有地方绑定的时候,默认绑定window。 
综合实例: jquery 里面有一个很常用的函数 each,可以把循环的对象元素绑定到this,方便操作。 这里只是简单的做个演示: 
代码 复制代码 代码如下:function each(tagName, callback) { var lists = document.getElementsByTagName(tagName); for (var i = 0; i < lists.length; i++) { callback.apply(lists[i]); } } each("a", function () { this.style.color = "red"; } ); 
可以看到我头部导航的链接都变成红色了。 详细出处参考:http://www.jb51.net/article/23170.htm
改变javascript函数内部this指针指向的三种方法 详细出处参考:http://www.jb51.net/article/23170.htm 语不惊人死不休的网络语本文来自: 中文幽默王(www.haha365.com) 详细出处参考:http://www.haha365.com/yqww/60646.htm ASP.NET调用javascript脚本的方法总结 --IT知道网(http://www... 一种让西方人都羡慕的养老制度设计--我们需要改变!而不是视而不见! ⊕本文来自: 郎咸平中文网 http://www.3a5a.com 详细出处参考:http://3a5a.com/forum.php flash中UI组件radiobutton单选按钮使用 文章来自: 电脑快车(http://dn58.net) 详文参考:http://www.dn58.net/htm/chengxusheji/b 真正的窈窕淑女 (转自学佛网:http://www.xuefo.net/show1_72467.htm) 护士长在工作中进行管理应掌握的原则 转载请注明出自中国护士网 http://www.512test.com 详细出处参考: http://www.512test.com/huliguanli/201 c语言返回指向错误信息字符串的指针函数 释迦牟尼佛的十大弟子简介 (转自学佛网:http://www.xuefo.net/show1_67478.htm) 佛光菜根谭之修行篇 (转自学佛网:http://www.xuefo.net/show1_54700.htm) 佛光菜根谭之教育篇 (转自学佛网:http://www.xuefo.net/show1_54698.htm) 佛光菜根谭之励志篇 (转自学佛网:http://www.xuefo.net/show1_54697.htm) 佛光菜根谭之自在篇 (转自学佛网:http://www.xuefo.net/show1_54699.htm) 佛光菜根谭之生活篇 (转自学佛网:http://www.xuefo.net/show1_54696.htm) 戒淫增福寿 (转自学佛网:http://www.xuefo.net/show1_42663.htm) “请射我肚子”(转自学佛网:http://www.xuefo.net/show1_21564.htm) 时轮金刚大灌顶简介(转自学佛网:http://www.xuefo.net/show1_4574.htm) 指向结构体的指针 C++ VS C#(7):指向函数的指针和委托 单亲孩子更需要性别角色教育 本文摘自: 天门社区(www.tmbbs.com) 详细出处请参考:http://www.tmbbs.com/thread-56342-1-1.html 本文摘自: 天门 如是因如是果 (转自学佛网:http://www.xuefo.net/blog/1/2_47846.htm) 净空法师:《太上感应篇》 直讲(转自学佛网11:http://www.xuefo.net/show1_23143.htm) 净空法师对胡小林开示念佛时妄想太多怎么办? (转自学佛网:http://www.xuefo.net/show1_46078.htm) 净空法师法语:过生日过寿,庆祝什么?(转自学佛网:http://www.xuefo.net/show1_21892.htm)