什么使用函数不要用括号

来源:7-22 数组排序sort()

JackGaoGao

2017-05-09 23:37

document.write(myarr.sort(sortNum));

写回答 关注

3回答

  • 慕勒7123956
    2017-05-31 21:46:29

    之前写了一个详细的,但是你一直没回复我,就不知道把那个文件扔哪里去了,这个比较粗糙,你先看着,有什么不懂得,可以私信我,下面这个是可以在浏览器中运行的

    var myarr=[1,5,6,7,3,4];

    //用prototype自定义的排序方法

    Array.prototype.my_sort=function(fn)//fn就是传入的函数,之后会进行调用

    {

    for(var i=0;i<this.length-1;i++)//这一段主要使用了冒泡排序

    {

    for(var j=i+1;j<this.length;j++)

    {

    if(fn(this[i],this[j])>0)//就在这里进行调用,返回值小于0的时候,说明需要交换

    {

    var temp=this[i];

    this[i]=this[j];

    this[j]=temp;

    }

    }

    }

    return this;//返回这个已经排序好的数组

    }

    function sortNum(a,b) {

           return b - a ;


       }


     document.write(myarr.my_sort(sortNum));



  • 慕勒7123956
    2017-05-31 21:42:54
    var myarr=[1,5,6,7,3,4];
    Array.prototype.my_sort=function(fn)
    {
    	for(var i=0;i<this.length-1;i++)
    	{
    		for(var j=i+1;j<this.length;j++)
    		{
    			if(fn(this[i],this[j])>0)//返回值小于0的时候,说明需要交换
    			{
    				var temp=this[i];
    				this[i]=this[j];
    				this[j]=temp;
    			}
    		}
    	}
    	return this;
    }
    function sortNum(a,b) {
           return b - a ;
    
       }
     console.log(myarr.my_sort(sortNum));


  • 慕勒7123956
    2017-05-10 08:44:49
    因为JavaScript中是可以传入函数当做参数的,这个函数在sort中还是会被调用的,当然是带括号的,如果你想听的话,我可以稍微深入的模拟一下这个过程

    慕用9564...

    请模拟下,谢谢

    2017-05-31 21:10:26

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题