您的位置:首页 > Web前端 > JavaScript

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

2016-05-27 08:32 447 查看

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 函数调用

共有四种调用方式:

作为函数

作为方法

作为构造函数

通过它们的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;

注:如果构造函数里有实参,则它与普通函数的调用时一样的。但如果没有它则是作为一个新对象初始化上下文。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript 函数