鍍金池/ 問答/HTML/ 關(guān)于函數(shù)調(diào)用的問題?

關(guān)于函數(shù)調(diào)用的問題?

看了書上的冒泡排序的方法,自己下來寫了寫。<!DOCTYPE html>
<html lang="en">
<head>

<meta charset="UTF-8">
<title>Title</title>

</head>
<body>
<script>

function Arraaylist() {
    var array=[];
    this.insert=function (item) {
        array.push(item);
    };
    this.toString=function () {
        return array.join();
    };
    this.bubblesort=function () {
        var length=array.length;
        for(var i=0;i<length;i++){
            for(var j=0;j<length-1;j++){
                if(array[j]>array[j+1]){ //如果大于前一個的值,賦值給第二個。//32154
                    swap(j,j+1)
                }
            }
        }
        var swap=function (index1,index2) {
            var aux=array[index1];
            array[index1]=array[index2];
            array[index2]=aux;//將一的值給二
        };
    };
}
function creatnum(size) {
    var array=new Arraaylist();
    for(var i=size;i>0;i--){
        array.insert(i);
    }
    return array;
}

var array=new creatnum(7);

array.bubblesort();
alert(array);

</script>
</body>
</html>
問題是array的7個數(shù)字是塞進去了,但是調(diào)用bubblesort函數(shù)。瀏覽器提示錯誤,swap is not function;調(diào)用insert函數(shù)都沒問題;var array=new Arraaylist();寫這個的是不應(yīng)該都是繼承下來的么?

回答
編輯回答
離人歸

swap 函數(shù)放在前面,函數(shù)表達式不會聲明提升。

    this.bubblesort=function () {
        var swap=function (index1,index2) {
            var aux=array[index1];
            array[index1]=array[index2];
            array[index2]=aux;//將一的值給二
        };
        var length=array.length;
        for(var i=0;i<length;i++){
            for(var j=0;j<length-1;j++){
                if(array[j]>array[j+1]){ //如果大于前一個的值,賦值給第二個。//32154
                    swap(j,j+1)
                }
            }
        }

    };
2017年9月11日 15:19