@llqintel
2014-12-01T14:37:55.000000Z
字数 895
阅读 918
js基础
周分享
js高级程序设计
大纲
1.1定义函数的一些写法:
//使用函数声明语法定义
function sum(x,y){
return x + y;
}
//通过函数表达式来定义
var sum = function(x,y){
return x + y;
};
//使用Function构造函数,最后一个参数被看作是函数体
//不推荐
var sum = new Function("x","y","return x + y");
alert(typeof sum);
alert(sum instanceof Object);
A1. 函数是js对象之一(Function)
1.2 进一步探究
function sum(x,y){
alert(x + y);
}
var aSum = sum;
aSum(10,10);
//------------------------------------------------
sum = null;
aSum(10,10);//?
图
A2. 属于引用类型,函数名是指针
重载条件:函数名相同
&&(参数个数不定
|| 参数类型不同
)
function sum(x,y,z){
alert(x * y);
}
sum(10,10,10);//结果是:20? 100?
Q1: 如何弥补这一"缺陷"?
3.1 理解参数
sum('10',10,10);//?
sum(10,10,10,10,10);//?
不介意传递进来多少个参数,也不在乎传进来的参数是什么类型
原因:A3. 参数的内部用一个数组来表示
ps:类似于java的不定参数
Q2: 可能会带来哪些问题?
3.2 内置对象
arguments
: 指向实参对象的引用
(类数组对象
)
function sum(){
console.log(arguments);
}
sum(1,2,3);
function sum(){
var n = 0;
for(var i= 0,len= arguments.length;i<len;i++){
n+= arguments[i];
}
alert(n);
}
sum(1,2);
sum(1,2,3);