[关闭]
@llqintel 2014-12-01T14:37:55.000000Z 字数 895 阅读 918

js中的function

js基础 周分享 js高级程序设计


大纲


1. 是什么

1.1定义函数的一些写法:

  1. //使用函数声明语法定义
  2. function sum(x,y){
  3. return x + y;
  4. }
  1. //通过函数表达式来定义
  2. var sum = function(x,y){
  3. return x + y;
  4. };
  1. //使用Function构造函数,最后一个参数被看作是函数体
  2. //不推荐
  3. var sum = new Function("x","y","return x + y");
  1. alert(typeof sum);
  2. alert(sum instanceof Object);

A1. 函数是js对象之一(Function)

1.2 进一步探究

  1. function sum(x,y){
  2. alert(x + y);
  3. }
  4. var aSum = sum;
  5. aSum(10,10);
  6. //------------------------------------------------
  7. sum = null;
  8. aSum(10,10);//?


A2. 属于引用类型,函数名是指针

2. 是否有重载

重载条件:函数名相同&&(参数个数不定 || 参数类型不同)

  1. function sum(x,y,z){
  2. alert(x * y);
  3. }
  4. sum(10,10,10);//结果是:20? 100?

Q1: 如何弥补这一"缺陷"?

3. 参数及内置对象

3.1 理解参数

  1. sum('10',10,10);//?
  2. sum(10,10,10,10,10);//?

不介意传递进来多少个参数,也不在乎传进来的参数是什么类型
原因:A3. 参数的内部用一个数组来表示

ps:类似于java的不定参数

Q2: 可能会带来哪些问题?

3.2 内置对象
arguments : 指向实参对象的引用(类数组对象)

  1. function sum(){
  2. console.log(arguments);
  3. }
  4. sum(1,2,3);
  1. function sum(){
  2. var n = 0;
  3. for(var i= 0,len= arguments.length;i<len;i++){
  4. n+= arguments[i];
  5. }
  6. alert(n);
  7. }
  8. sum(1,2);
  9. sum(1,2,3);

3.

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注