首页 > 移动平台 > 详细

Javascript中call()和apply()理解

时间:2020-11-02 16:38:21      阅读:21      评论:0      收藏:0      [点我收藏+]

基础理解

  • 每个函数都包含两个非继承而来的方法:call apply
  • 都是在特定的作用域调用函数,设置函数体内的this指向,以扩展函数赖以运行的作用域
  • apply接受两个参数,一个是运行的作用域,一个是数组参数数组
    applay(函数作用域,参数)
    
    如果参数不是一个数组将会导致报错,如果没有提作用域和参数任何一个参数,那么将导致Global对象作为this.obj
  • call第一个参数是运行的作用域,但是传力给函数的参数必须列举出来
    call(函数作用域,参数1,参数2,参数3)
    
    call方法可以用来代替另一个对象调用一个方法,call方法可以将一个函数的对象上下文从初始的上下文改变为thisObj指定的对象,如果没有提供的thisObj参数,那么Global对象别用于thisObj

使用情况

在给对象参数的情况下,如果参数的形式是数组的时候,比如apply示例里面传递了参数arguments,这个参数是数组类型,并且在调用Person的时候参数的列表是对应一致的(也就是Person和Student的参数列表前两位是一致的) 就可以采用 apply , 如果我的Person的参数列表是这样的(age,name),而Student的参数列表是(name,age,grade),这样就可以用call来实现了,也就是直接指定参数列表对应值的位置(Person.call(this,age,name,grade));

Javascript中call()和apply()理解

原文:https://www.cnblogs.com/yanzq-x/p/13914553.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!