最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript学习笔记之Function对象_基础知识

来源:动视网 责编:小采 时间:2020-11-27 21:33:19
文档

JavaScript学习笔记之Function对象_基础知识

JavaScript学习笔记之Function对象_基础知识:在JavaScript中,函数function就是对象。 JS中没有方法重载 在JavaScript中,没有方法(函数)重载的概念。 例子: 代码如下: function add(number) { alert(number + 20); } function add(number, number1)
推荐度:
导读JavaScript学习笔记之Function对象_基础知识:在JavaScript中,函数function就是对象。 JS中没有方法重载 在JavaScript中,没有方法(函数)重载的概念。 例子: 代码如下: function add(number) { alert(number + 20); } function add(number, number1)


 在JavaScript中,函数function就是对象。

JS中没有方法重载

  在JavaScript中,没有方法(函数)重载的概念。

  例子:

代码如下:



function add(number)
{
alert(number + 20);
}
function add(number, number1)
{
alert(number + 30);
}
add(10);






网页中弹框显示的是40。

  说明虽然第二个方法是两个参数,但是仍然调用了它。

  交换两个方法的顺序之后,弹框显示30,可以看出不管参数个数如何,是调用同名的后面的方法。

  怎么解释这个现象?

  这是因为函数声明实际上是建立了一个对象:

代码如下:



function add(number)
{
alert(number + 20);
}
/*
上面的函数等价于:
var add = function(number)
{
alert(number + 20);
}
*/
function add(number, number1)
{
alert(number + 30);
}
/*
上面的函数等价于:
var add = function(number, number1)
{
alert(number + 30);
}
*/
add(10);





  这样add实际指向的是后面的对象,而方法调用的时候赋予的参数将会按顺序赋给方法形式参数,后面没有被赋值的参数就是undefined。

  JavaScript的函数调用的时候没有严格的参数个数检查,实参个数小于形参个数是可以的,没有被赋值的形参就是未定义值undefined。

  实参个数大于形参个数也是可以的,这样只有前面的实参会被使用,多出来的实参不会被使用。

Function对象

  在JavaScript中有一个Function对象,所有自定义的函数都是Function对象类型的。

  Function对象接收的所有参数都是字符串类型的,其中最后一个参数就是要执行的函数体,而前面的参数则是函数真正需要接收的参数。

  例子:

代码如下:



var add = new Function("number", "number1", "alert(number + number1);");
var add = new Function("number", "alert(number + 20);");
add(10, 30);





隐含对象arguments

  在JavaScript中,每个函数都有一个隐含的对象arguments,表示给函数实际传递的参数。

  arguments和函数的形式参数及其个数无关。

  arguments有个有用的属性length,表示实参的长度。可以借助这个来模拟出函数的重载:

  练习例子:

代码如下:



function add(number1, number2)
{
alert(arguments.length);
alert(arguments[0]);
alert(arguments[1]);
alert(arguments[2]);
}
//add(2, 3, 4);
function add2()
{
if(1 == arguments.length)
{
alert(arguments[0]);
}
else if(2 == arguments.length)
{
alert(arguments[0] + arguments[1]);
}
else if(3 == arguments.length)
{
alert(arguments[0] + arguments[1] + arguments[2]);
}
}
add2(3);
add2(3, 4);
add2(3, 4, 5);





  每一个函数对象都有一个length属性,表示该函数期望接收的参数格式。

  它与函数的arguments不同,arguments.length表示函数实际接收的参数个数。

  例子:

代码如下:


输出3
add(1, 2, 3);
var add2 = function()
{
}
alert(add2.length); //输出0





文档

JavaScript学习笔记之Function对象_基础知识

JavaScript学习笔记之Function对象_基础知识:在JavaScript中,函数function就是对象。 JS中没有方法重载 在JavaScript中,没有方法(函数)重载的概念。 例子: 代码如下: function add(number) { alert(number + 20); } function add(number, number1)
推荐度:
标签: js 对象 javascript
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top