js 函数Function

本文详细解析JavaScript中函数的实现方式,包括函数作为对象、函数名作为指针、函数内部的arguments和this对象使用,以及call和apply方法如何控制this对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.函数实际上是一个对象typeof functionName→function,通过instanceof判断属于哪个类。

2.函数名实际是一个指针,指向某个函数体。

3.函数内部有两个对象:arguments和this。arguments不光可以指向函数传进去的参数,并且,arguments.callee指向函数,比如函数outer,调用的时候可以写为outer(),此时就可以更改为arguments.callee();

this指的是一个执行环境,比如我们单独调用函数outer,那么此时this就是window,如果我们采用call,或者apply就可以控制函数的调用对象,即this对象,

function outer(){} 

var obj = new Object();

outer.call(obj);这时this就指向的是obj。

我们可以看到两个方法apply和call,都是方法的调用,方法可以通过方法名称调用,为什么还需要call和apply。因为他们可以控制this对象。其中如果outer.call(null)或者

outer.call(undefined),那么此时则指向的是window对象。call和apply的区别在于第二个参数,apply的第二个参数只能是arguments和一个数组,而call则是一一列举的,比如

outer.call(obj,"red","blue");而apply则是outer.apply(obj,["red","blue"]);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值