欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOCX文档下载  

    JS中转变this指向的方法(call和apply、bind)_.docx

    • 资源ID:11621950       资源大小:13.04KB        全文页数:6页
    • 资源格式: DOCX        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    JS中转变this指向的方法(call和apply、bind)_.docx

    JS中转变this指向的方法(call和apply、bind)_ this是javascript的一个关键字,随着函数用法场合不同,this的值会发生改变。但是总有一个原则,那就是this指的是调用函数的那个对象。 this一般指向的是当前被调用者,但也可以通过其它方式来转变它的指向,下面将介绍三种方式: 1.call用作继承时: function Parent(age) this.name=mike,jack,smith; this.age=age; function Child(age) Parent.call(this,age);/把this指向Parent,同时还可以传递参数 var test=new Child(21); console.log(test.age);/21 console.log(test.name); test.name.push(bill); console.log(test.name);/mike,jack,smith,bill 2.call和apply都可以转变this指向,不过apply的其次个参数是散列分布,call则可以是一个数组 console.log(Math.max.apply(null,1,2,3,4);/4 apply() 方法接收两个参数:一个是在其中运行函数的作用域,另一个是参数数组。其中,其次个参数可以是 Array 的实例,也可以是arguments 对象。call() 方法与 apply() 方法的作用相同,它们的区分仅在于接收参数的方式不同。对于 call() 方法而言,第一个参数是 this 值没有改变,改变的是其余参数都挺直传递给函数。换句话说,在用法call() 方法时,传递给函数的参数必需逐个列举出来。 3.ES5还定义了一个方法:bind(),它会创建一个函数的实例,其this值会被绑定到传给bind()函数的值。如 window.color=red; var o=color:blue; function sayColor() console.log(this.color); var objectSaycolor=sayColor.bind(o); /var objectSaycolor=sayColor.bind(); objectSaycolor();/blue 在这里sayColor()调用bind()并传入对象o,创建了objectSayColor()函数。objectSayColor()函数的this值等于o,因此即使是在全局作用域中调用这个函数,也会看到blue。 以上所述是我给大家介绍的JS中转变this指向的方法(call和apply、bind),盼望对大家以上关心! 下面还有点时间给大家补充点基础学问有关:call()与apply()区分 一、方法的定义 call方法: 语法:call(thisObj,Object) 定义:调用一个对象的一个方法,以另一个对象替换当前对象。 说明: call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文转变为由 thisObj 指定的新对象。 假如没有供应 thisObj 参数,那么 Global 对象被用作 thisObj。 apply方法: 语法:apply(thisObj,argArray) 定义:应用某一对象的一个方法,用另一个对象替换当前对象。 说明: 假如 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。 假如没有供应 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。 代码示例: function Animal(name) this.name = name; this.showName = function() console.log(this.name); ; function Cat(name) Animal.call(this, name); Cat.prototype = new Animal(); function Dog(name) Animal.apply(this, name); Dog.prototype = new Animal(); var cat = new Cat("Black Cat"); /call必需是object var dog = new Dog("Black Dog"); /apply必需是array cat.showName(); dog.showName(); console.log(cat instanceof Animal); console.log(dog instanceof Animal); 模拟call, apply的this替换 function Animal(name) this.name = name; this.showName = function() alert(this.name); ; ; function Cat(name) this.superClass = Animal; this.superClass(name); delete superClass; var cat = new Cat("Black Cat"); cat.showName(); .

    注意事项

    本文(JS中转变this指向的方法(call和apply、bind)_.docx)为本站会员(PIYPING)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开