• JavaScript学习----Function


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
    
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <title>JavaScript Study 2015.11.9--</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <style type="text/css">  
    
        </style>
        
        <script type="text/javascript">
        //function的定义
        
        /*
        function是对象,但是与对象又有很大的不同。
        */
        function fn1(){
            alert("fn1");
        }
        
        var fn2 = fn1;//fn1,fn2拷贝内存空间
        //alert(fn1);
        //alert(fn2);
        fn2 = function(){
           alert("fn2");
        }
        
        //fn1();//fn1
        //fn2();//fn2
        
        var obj1 = new Object();
        obj1.name = "obj1";
        
        var obj2 = obj1;//obj1,obj2指向内存中的同一块空间
        
        obj2.name = "obj2";
        
        document.write(obj1.name);//obj2
        document.write("<br>");
        document.write(obj2.name);//obj2
        document.write("<br>");
        
        
        //function是对象,所以,可以作为function的参数进行传递
        function callFun(funName,arg){
           funName(arg);
        }
        
        function write(arg){
           document.write(arg);
           document.write("<br>");
        }
        
        callFun(write,"function is a arg");//write是function,这里作为参数。
        
        //Sort
        
        var as = [1,2,30,22,12,90,80];
        document.write(as.sort()); //按字符排序
        document.write("<br>");
        //怎么按数字排序呢
        function sortByNum(a,b){
           return a-b;
        }
        document.write(as.sort(sortByNum)); //按数字排序
        document.write("<br>");
        
        
        //怎么对对象排序呢
        function Person(name,age){
            this.name = name;
            this.age = age;
        }
        
        var p1 = new Person("adada",30);
        var p2 = new Person("disk",18);
        var p3 = new Person("bob",20);
        var p4 = new Person("harhar",50);
        
        as = [p1,p2,p3,p4];
        as.sort();
        for(var i=0;i<as.length;i++){
             document.write(as[i].name+","+as[i].age);
             document.write("<br>");
        }
        
        document.write("<br>");
        
        
        function sortByName(obj1,obj2){
           if(obj1.name>obj2.name){
             return 1;
           }
           else if (obj1.name<obj2.name)
           {
           return -1;
           }
           else
           return 0;
        }
        
        as.sort(sortByName);
        for(var i=0;i<as.length;i++){
             document.write(as[i].name+","+as[i].age);
             document.write("<br>");
        }
        
        function sortByAge(obj1,obj2){
           return obj1.age - obj2.age;
        }
        as.sort(sortByAge);
        for(var i=0;i<as.length;i++){
             document.write(as[i].name+","+as[i].age);
             document.write("<br>");
        }
        //如果Person有n个属性,那就需要些n个方法。
        //通用的实现方式:
        function sortByPropertyName(propertyName){
          //这里返回了一个function
           return function(obj1,obj2){
             if(obj1[propertyName]>obj2[propertyName]){
                return 1;
             }else if(obj1[propertyName]<obj2[propertyName]){
                return -1;
             }
             else return 0;
           }
        }
        as.sort(sortByPropertyName("name"));//只需要传入属性名就可以了
        for(var i=0;i<as.length;i++){
             document.write(as[i].name+","+as[i].age);
             document.write("<br>");
        }    
        
        as.sort(sortByPropertyName("age"));//只需要传入属性名就可以了
        for(var i=0;i<as.length;i++){
             document.write(as[i].name+","+as[i].age);
             document.write("<br>");
        }
    
        
        function sum(num1,num2){
          document.write(num1+num2);
           document.write("<br>");
        }
        //上面的语句=
        var sum = function(num1,num2){
          document.write(num1+num2);
           document.write("<br>");
        }
        
        function sum(num1){
          document.write(num1+100);
           document.write("<br>");
        }
            //上面的语句=
            
        sum=function(num1){
          document.write(num1+100);
           document.write("<br>");
        }
        //会覆盖
        sum(20);//120
        sum(20,20);//120
        
        //arguments
        function args(a1,a2,a3){
           document.write(arguments.length);
           document.write("<br>");
        }
        args(1);
        args(1,2);
        args(1,2,3);
        args(1,2,3,4);//这里并不会报错,而是超出的部分不使用
        
        
        
        
    ///1, 函数的内存图,与对象的区别。
    // 2, Function的Sort,对象的Sort。
    //3, callee apply
    //4, json
    //5, factory createPerson
    //6, prototype的内存图。
    //7, prototype重写的内存图。
    
    
    
        </script>
      </head>
      <body>
        <div id="wrap">
          
        </div>
      </body>
    </html>
  • 相关阅读:
    3d smoke(CPU版)
    Rendering of Translucent Object With PRT(原创)
    Loren Carpenter与分形山脉
    WWW.GAMEDEV.NET的每日一图
    3d fire(CPU版)
    CentOs安装Docker
    关于Reporting Service的一些零碎整理
    .NET高级调试策略
    基于云的商务智能应该注意的事项
    outlook联系人操作手册
  • 原文地址:https://www.cnblogs.com/heavyhe/p/4981294.html
Copyright © 2020-2023  润新知