详解JavaScript函数属性、方法和构造函数

函数属性、方法和构造函数

JS中,函数是值,对函数执行typeof运算会返回function,但是函数是JS中特殊的对象,也可以拥有属性和方法。

length属性

函数体里面,arguments.length表示传入函数的实参个数,而函数本身的length有不同的含义。

函数的length属性是只读属性,表示函数实参的数量,这里的实参其实是形参,是函数定义时给出的实参个数,也是期望传入的实参个数。

check()的函数,比较arguments.length实参个数和arguments.callee.length期望传入实参个数,来判断所传入的实参个数是否正确。

prototype属性

每一个函数都包含一个prototype属性,这个属性是指向一个对象的引用,这个对象称为"原型对象"(prototype object)。

每一个函数都包含不同的原型对象,当函数用作构造函数的时候,新创建的对象会从原型对象上继承属性。

call()方法和apply()方法

我们可以将call()和apply()看做某个对象的方法。

待续。。。

bind()方法

这个方法主要作用就是将函数绑定至某个对象。当在函数f()上调用bind()方法并传入一个对象o作为参数,这个方法将返回一个新的函数。

toString()方法

和其他对象一样,函数也有toString()对象,返回一个字符串,类似[native code]字符串作为函数体。

8.7.6 Function()构造函数,很少用

通过Function()构造函数来定义函数:

与var fff=function(x,y){return x*y;}

可调用的对象

类数组对象并不是真正的数组,同样,可调用对象是一个对象,可以在函数调用表达式中调用这个对象,所有的函数都是可调用的,但并非所有的可调用对象都是函数。

IE8之前,实现了客户端方法Window.alert()和Document.getElementById(),这类调用很少。

检测一个对象是否是真正的函数对象,以下案例检测它的class属性:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿立聊全栈

有作用的,有闲钱的支持一点。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值