首頁  >  問答  >  主體

javascript - 求一個陣列sort方法的問題

這個範例是我在網路上看到的例子:

<script type="text/javascript">
            var objectList2 = new Array();

            function WorkMate(name, age) {
                this.name = name;
                var _age = age;
                this.age = function() {       //我实在是没有看懂这里为什么要添加这样一个方法
                    if(!arguments) {          //如果没有实参传入
                        _age = arguments[0];  //那_age的值为实参的第一个的值   **没有实参传入,哪来的第一个值?**
                    } else {
                        return _age;
                    }
                }

            }
            objectList2.push(new WorkMate('jack', 20));
            objectList2.push(new WorkMate('tony', 25));
            objectList2.push(new WorkMate('stone', 26));
            objectList2.push(new WorkMate('mandy', 23));
            //按年龄从小到大排序
            objectList2.sort(function(a, b) {
                return a.age() - b.age();
            });
            for(var i = 0; i < objectList2.length; i++) {
                document.writeln('<br />age:' + objectList2[i].age() + ' name:' + objectList2[i].name);
            }
        </script>

當中這段我備註的我不知道我理解的對嗎 ,麻煩大神幫我看一下,中間arguments那裡怎麼理解,還有這個方法到底有什麼用呢?謝謝

PHP中文网PHP中文网2710 天前416

全部回覆(1)我來回復

  • PHP中文网

    PHP中文网2017-05-19 10:18:03

    function a(){
        console.log(!arguments);
    }
    a()//false
    a(1)//false

    那個if判斷貌似沒鳥用…arguments是function必備的,不管你有沒有傳入參數。

    回覆
    0
  • 取消回覆