javascript笔记:函数的定义与调用

1.1 函数定义

//单个参数(对象参数)
function pritprops(o){
    for(var p in o)
        console.log(p+":"+o[p]+"\n");
}

//多个参数(计算两个笛卡尔坐标之间的距离)
function distance(x1,y1,x2,y2){
    var dx = x2 - x1;
    var dy = y2 - x2;
    return Math.sqrt(dx*dx + dy*dy);
}

//递归函数,调用自身的函数(计算乘阶)
function factorial(x){
    if(x <= 1) return 1;
    return x * factorial(x-1);
}

//把函数赋值给一个变量
var square = function(x){return x*x;}

//函数表达式可以包含名称,递归时很好用
var f = function fact(x){
    if(x <=1) return 1;
    return fact(x-1)*x;
}

//函数表达式也可以作为参数传递给其他函数
data.sort(function(a,b){return a-b;});

//函数定义后直接运行
(function(x){alert(x);}(10));
var tensquared = (function(x){alert(x);})


//嵌套函数
function hypotenuse(a,b){
    function square(x){return x*x;}
    return Math.sqrt(square(a)-square(b));
}

1.2 函数调用

共有四种调用方式:

  1. 作为函数
  2. 作为方法
  3. 作为构造函数
  4. 通过它们的call()和apply()方法间接调用
//作为函数调用  (代码全文通用)
pritprops(10);
var total = distance(0,0,1,3) + distance(2,3,4,4);
var probabilly = factorial(5)/factorial(3);
//作为方法调用
var calulator = {
    operand1:1,
    operand2:1,
    add:function(){
        //相当于声明了一个result
        this.result = this.operand1 + this.operand2;

    }
};
calulator.add();  //2
calulator.result; //2


//更复杂的访问表达式
customer.surname.toUpperCase();   //调用customer.surname的方法
f().m();                          //调用f()返回的方法m()
//构造函数调用
var o = new Object();
var o = new Object;

注:如果构造函数里有实参,则它与普通函数的调用时一样的。但如果没有它则是作为一个新对象初始化上下文。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值