JS函数

2016-01-24  本文已影响24人  olivia1111

语法

function 函数名([形参列表]){
执行代码
}
函数名([实参列表])

函数定义

区别
函数声明的方式定义函数可以在声明前调用,而函数表达式和实例化必须在定义函数后调用
实例化的函数定义方法无法识别父函数的变量
(function(){
var i=10;
var add = new Function("j","console.log(i+j);debugger;")
add(1);})()

2.利用argument进行函数计算
function add(){
var sum =0,parameter;
for(i=0;i<=arguments.length; i++){
parameter = arguments[i];
sum = sum + parameter;
}
return sum;
}
3.参数为原始类型,值传递
function increment(number){
number = number +1;
return number;
}
var a=1;
var x=increment(a);2
a;//1,只传递值,原始值不改变

作用域

若内部没有相应的作用对象,则会作用到外部


构造函数

function Point(x,y){
    this.x=x;
    this.y=y;
  }
  Point.prototype.move=function(stepX,stepY){
     this.x+=stepX;
     this.y+=stepY;
  }
  var point=new point(1,1);
  point.move(2,1);//x:3,y:2
 function Car(type,color){
    this.type=type;
    this.color=color;
    this.status="stop";
    this.light="off";
  }
  //在原型函数的基础上创建新的方法
  Car.prototype.start=function(){
    this.status="start";
    this.light="on";
    console.log(this.type+"is"+this.status);
  }
 Car.prototype.stop=function(){
    this.status="stop";
    this.light="off";
  }
  var audi=new Car("audi","sliver");
  var benzi=new Car("benzi","black");
  audi.start;//调用方法
  benzi.stop;
  audi.status;//访问属性
  audi.light="off";

函数调用(this)

调用模式

函数调用参数

递归

  function factorial(i){
      if(i==0){
          return 1;}//递归函数的退出条件
     return i*factorial(i-1);//调用函数本身
  }

闭包

First-class function

上一篇下一篇

猜你喜欢

热点阅读