函数

函数

函数语法

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

function add(num1,num2){
    var sum = num1 + num2;
    return sum;
}
var x = add(2,3); 

函数定义的方式有以下三种

1,函数声明

function add(){
}

function add(num1,num2){
    var sum = num1 + num2;
    return sum;
}

2.函数表达式

var add = function(){
}

var add = function(num1,num2){
    var sum = num1 + num2;
    return sum;
}
这三种函数定义之间的区别

函数声明与函数表达式,函数实例化的区别
通过函数声明的函数可以在函数声明之前使用,而函数表达式和函数实例化所定义的函数必须在此之后调用
函数实例化的作用域
函数实例化的作用域为全局,所以即便在局部作用域内也不能使用局部作用域内的变量。


3.对象实例化
一般不会在实际编程中应用到

var add = new Funcrion("i", "j", "return(i+j)"); 

函数参数

实参数量少于形参
function add(number0, number1){
    var sum = number0 + number1;
    return sum;
}

var x = add(2);//number0=2, number1=undefined;
运行结果可以自己测试一下

实参数量多余形参
function add(number0, number1){
    var sum = number0 + number1;
    return sum;
}
var x = add(2,3,4);//number0 = 2,number1=3
第三个参数在哪里找呢,其实每个函数里都有一个对象为arguments
它包含一些属性,包括传入的参数值,是以数组的形式存储。
arguments[0]存储的是参数值2arguments[1]存储的参数值为3arguments[2]存储的参数值为4arguments.length为3

所以以上函数可以更改为不定实参数量的求和函数
function add(){
    var length = arguments.length,
        sum = 0;
        parameter;
    for(var i = 0; i<lenght; i++){
        parameter = arguments[i];
        sum = sum + parameter;
    }
    return sum; 
}

add(1,2,3,3,4,5....);

参数为原始类型

相当于C语言中的非指针传值操作,不会改变原始值。

function increment(number){
    number = number + 1;
    return number;
}

var a = 1;
var x = increment(a);//执行完这句之后呢,x为2;a为1,a只是拷贝了值给参数而已。

参数为对象类型

相当于C语言中的参数是以指针操作的,将更改原始值

function increment(person){
    person = person.age + 1;
    return person;
}

var jerry = {name:'jerrry', age:1};
var x = increment(jerry);// {name:'jerry',age:2}
jerry;//{name:'jerry',age:2}

构造函数

当调用构造函数时,会产生this这个空对象


原型

function Point(x,y){
    this.x = x;
    this.y = y;
}
Point.prototype.move = function(stepX,stepY){
    this.x += stepX;
    this.y += stepY;
};//Point.prototype----原型属性,这个函数能被对歌对象公用

var point = new Point(1,2);
var point1 = new Point(2,4); 
point.move(2,2);
point.move(3,5);//move方法在原型中被定义,可以共用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值