function类型
1.构造函数(函数是对象,函数名是指针)
var sum = new Function("num1", "num2", "return num1 + num2");//不推荐
2.没有重载(深入理解)
function adds(num) {
return num + 100;
}
function adds(num) {
return num + 200;
}
var result = adds(100);
alert(result);//300(后覆盖前面的)
var adds =function (num) {
return num + 100;
}
adds = function (num) {
return num + 200;
}
var result = adds(100);
alert(result);//300(后覆盖前面的)
3.函数声明与函数表达式
解释器会率先读取函数声明,函数表达式必须等到解释器执行到它所在的代码行,才会真正被解释执行.此例子中函数声明被提升到了顶部进行求职运算.
alert(sum(10,10));//20
function sum(num1, num2) {
return num1 + num2;
}
将函数声明改为等价表达式
运行错误(原因在于函数位于一个初始化函数语句中,而不是一个函数声明)
alert(sum(10,10));
var sum = function(num1, num2){
return num1 + num2;
}
4.作为值的函数
function call(somefunction, somear){
return somefunction(somear);
}
function add10(num){
return num + 10;
}
var result1 = callsome(add10,10);
alert(result1)//?
function areatefunction(propertyName){
return function(Object1,Object2){
var value1 = Object1[propertyName];
var value2 = Object2[propertyName];
if (value1 < value2) {
return -1;
} else if (value1 > value2){
return 1;
}else{
return 0
}
}
}
var datas = [{name:"hjh", age:"23"}, {name:"nba", age: 25}];
datas.sort(areatefunction("name"));
alert(datas[0].name);//hjh
datas.sort(areatefunction("age"));
alert(datas[0].age);//23
5.函数内部属性
arguments(包含传入函数中的所有参数);
this