js基础1函数的属性和方法--自` 函数的内部属性arguments和this length 和prototype 方法call ()和aplly() bind()

函数的内部属性arguments和this

arguments是函数调用的时候是传递给函数的参数代列表,有length属性  , 获取函数的形参部分

this

this是函数运行时产生的函数, 自动产生的内部对象,跟函数在哪里定义没有关系  ,跟谁调用有关系

 1.在函数外部使用this,this指的是window对象;

2.在某些情况下的函数内部调用this,this指的也是window对象;

3.函数被new来调用,那么函数内部的this是new 关键字新创建的上级对象;

4.函数作为某个对象的方法调用,函数内部的this指的是这个对象;

5.事件监听函数内部的this,指的是触发这个事件的元素。

 

每个函数都有一个属性 length 和prototype  

length 是当前函数接收命名的参数的(形参)个数     arguments.length是实参的个数

非继承而来的方法call ()和aplly()   通常使用来扩充函数的作用域  

这两个方法的作用是一样的,但是使用call()和apply()方法时,就会改变this的指向

apply()方法 接收两个参数,一个是函数运行的作用域(this),另一个是参数数组。

call()方法 第一个参数和apply()方法的一样,但是传递给函数的参数必须列举出来

什么情况下用apply,什么情况下用call

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

 

bind(this)  返回一个新的函数,  内容是一样,但是this是不一样的,通常用来绑定this

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值