• 我转过几个弯 绕过那个小雨楼
  • 拿着蒲扇摆着衣衫渡着紧箍咒
  • 不问天涯不停留 喝过几壶酒
  • 不过年少白头道义放胸口
  • 倘若明天之后 遥看前尘剑封侯
  • 似那天上神仙无所求
  • 朝朝暮暮君如梦醒十分不为何理由
  • 是真是假是惶恐是无休
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 又过了几个弯 算尽天量道莫慌
  • 踏这田园闻这芳草香
  • 跌跌撞撞仗剑天涯折煞不枉无笔良
  • 是梦是幻是温柔是家乡
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 谁能与我一醉方休

call()方法 对象冒充

158 0

call()对象冒充,最直白的记忆方法,就是更改this的指向,比如:

document.onclick = function() {
    fn();
};

function fn() {
    if (this === window) alert('window');
    if (this === document) alert('document');
}

这里我们知道,函数里面的函数,this指向的是window,那么我们使用call便可以让this指向document,用法如下:

document.onclick = function() {
    fn.call(this);  //这里的this填你要指向的对象,比如指向box,就填box,那么fn中的this指向的就是box对象!
};

function fn() {
    if (this === window) alert('window');
    if (this === document) alert('document');
}

这样便可以将this指向的是document了,然后在事件绑定中,IE的atachEvent()中,不像w3c的addEventListener()那样,this会指向绑定事件的对象,ie是直接指向window,于是我们可以使用call方法,改变this的指向。

call()也支持传输参数,call(this,1,2,3);1,2,3对应fn中出入的参数1,参数2,参数3,所以说call用处还是很大的。

例子:

document.onclick = function() {
    fn.call(this,666);  
};

function fn(value1) {
    if (this === window) alert('window');
    if (this === document) alert('document');
    alert(value1); 这里就会输出666
}
0
  • 本文分类:JavaScript
  • 本文标签:call方法对象冒充
  • 流行热度:已超过 158 人围观了本文
  • 最后更新:2018年11月21日 - 22时49分45秒
  • 发布日期:2018年11月21日 - 22时29分00秒
  • 版权申明:本文系作者@木灵鱼儿原创发布在木灵鱼儿 - 有梦就能远航站点。未经许可,禁止转载。
微信收款码
微信收款码