javascript学习笔记的函数对象
js中没有重载方法
在Javascript中,没有一个方法(函数)重载的概念。
实例:
复制代码代码如下所示:
函数添加(数字)
{
警报(号码+ 20);
}
添加函数(数量、编号)
{
警报(号码+ 30);
}
添加(10);
网页中的子弹框显示了40。
它表明,虽然第二种方法是两个参数,但它仍然被称为。
在交换两种方法的顺序后,弹丸盒显示了30个,可以看出,无论参数多少,都是同名的后面的方法。
你如何解释这种现象
这是因为函数声明实际上是构建一个对象:
复制代码代码如下所示:
函数添加(数字)
{
警报(号码+ 20);
}
*
上述函数相当于:
var =函数(数字)
{
警报(号码+ 20);
}
* /
添加函数(数量、编号)
{
警报(号码+ 30);
}
*
上述函数相当于:
VaR加=功能(数量、编号)
{
警报(号码+ 30);
}
* /
添加(10);
通过这种方式,添加实际上指的是它后面的对象,而分配给方法调用的参数将按顺序分配给表单参数。在此之后未分配的参数是未定义的。
当Javascript函数调用时,没有严格的参数数要检查。参数的数量小于参数的个数。这是可能的,未分配的参数是未定义的值未定义。
参数的数量大于参数的数量,因此只能使用前面的参数,并且不使用多个参数。
函数对象
在Javascript中,有一个函数对象,而所有的自定义函数都是函数对象类型。
函数对象接收的所有参数都是字符串类型。最后一个参数是要执行的函数体,而前面的参数是函数真正需要接收的参数。
实例:
复制代码代码如下所示:
var =新函数()
var =新函数()
添加(10, 30);
隐藏对象的争论
在Javascript中,每个函数都有一个隐式对象参数,它们代表实际传递给函数的参数。
参数与函数的形式参数及其数目无关。
参数有一个有用的属性,长度,用来表示参数的长度,可以用来模拟函数的重载:
实践的例子:
复制代码代码如下所示:
(number1,number2)功能添加
{
警报(参数,长度);
警报(参数{ 0 });
警报(参数{ 1 });
警报(参数{ 2 });
}
添加(2, 3, 4);
2()函数
{
如果(arguments.length = 1)
{
警报(参数{ 0 });
}
如果(arguments.length = 2)
{
警报(参数{ 0 } +参数{ 1 });
}
如果(arguments.length = 3)
{
警报(参数{ 0 } +参数{ 1 } }参数{ 2 });
}
}
(3)2;
(3, 4)2;
(3, 4, 5)2;
每个函数对象都有一个长度属性,该属性表示函数预期接收的参数的格式。
它不同于函数的参数,并arguments.length代表参数的函数的数量却受到。
实例:
复制代码代码如下所示:
VaR加=功能(num,num2,小键盘数字3)
{
警报(NUM + num2 +小键盘数字3);
}
警报(添加长度);输出3
添加(1, 2, 3);
VaR ADD2 =功能()
{
}
警报(2。长度); / /输出0