zoukankan      html  css  js  c++  java
  • 函数类型

    函数function,是一个对象,也是Function类型的一个实例。而函数名,则是指向这个函数对象的一个指针。函数的定义,有两种方法,函数声明和函数表达式。

    一、没有重载

    如果声明了两个同名函数,则后面的函数会覆盖掉前面的函数。

    二、函数声明与函数表达式

    解析器会先读取函数声明,然后再执行函数表达式。有点像变量提升。

    但是用函数表达式定义的函数,就没有变量提升的功能了,如果函数的调用在函数表达式之前,就会报错。

    三、作为值的函数

    函数可以作为值来使用。

    function compare(attr){
        return function(obj1,obj2){
            var value1=obj1[attr];
            var value2=obj2[attr];
            if(value1>value2){
                return -1;
            }else if(value1<value2){
                return 1;
            }else{
                return 0;
            }
        };
    }
    var data=[{name:"Alice",age:18},{name:"Tony",age:10},{name:"Wang",age:20}];
    var rank=data.sort(compare("age"));
    console.log(rank)

    上面这段代码,作用是将一组对象,按照对象里面的年龄进行从大到小进行排序。采用的方法是sort方法。sort方法里面传的参数是一个函数。

    这个函数在定义的时候,定义的是对象的属性。获取对象的属性,采用的是方括号的方法。obj[attr]。方括号内的值是字符串,所以传入的时候要加双引号。

    如果不是用这种方式获取属性值,可以用点后面跟属性值的方法。

     var value1=obj1.attr;

    但是由于attr传进来的时候仍然是字符串,所以这种方法得到的value1是undifinde。

    对象的属性值获取方法如下:

    var obj=[{name:"Alice",age:18},{name:"Tony",age:10},{name:"Wang",age:20}];
    console.log(obj[1]["name"]);//Tony
    console.log(obj["name"]);//undifined
  • 相关阅读:
    Activity 横竖屏生命周期
    gradle wrapper, gradle ,gradle plugin 之间的关系
    《构建之法》第八、九章学习总结
    《构建之法》第六、七章学习总结
    《构建之法》第三、四、五章学习总结
    《构建之法》第一、二章学习总结
    SQL练习50题(基于MySQL)后25题
    SQL练习50题(基于MySQL)前25题
    轮播2-css
    轮播1-animate-匀速
  • 原文地址:https://www.cnblogs.com/qingshanyici/p/10876562.html
Copyright © 2011-2022 走看看