JS函数类型

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


   转载规则


《JS函数类型》 三叶雨 采用 知识共享署名 4.0 国际许可协议 进行许可。