为了账号安全,请及时绑定邮箱和手机立即绑定

有点懵,求指点

就是我调用startMove(obj,attr,iTraget,fn)这个函数时,为什么我只传递3个参数时,也能调用这个函数。我个人认为startMove(this,‘height’,100),是错误的啊!因为没有3个参数的函数,只有4个参数的函数啊!求解

正在回答

1 回答

有一个对象  arguments对象,是用来存储函数调用时传递给该函数的所有参数。

用法 :函数名.arguments   类似数组,需要遍历才能看到值。它有个属性length可以看到实际有几个参数。

当没有传递fn这个参数的时候。获取的值是:函数名.arguments.length=3; ,传递了后就等于4.

分析:个人认为是因为,js专门用这个对象来存储你调用时传递的参数,那么你执行的时候,它就不是去看你定义时有几个参数,而是直接去访问arguments这个对象去获得你实际传送了多少参数。所以才会完美执行。  

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JS动画效果
  • 参与学习       113925    人
  • 解答问题       1443    个

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

进入课程

有点懵,求指点

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信