首頁 >web前端 >js教程 >JavaScript的函數重載詳解

JavaScript的函數重載詳解

php中世界最好的语言
php中世界最好的语言原創
2018-03-09 13:28:351771瀏覽

這次帶給大家JavaScript的函數重載詳解,JavaScript的函數重載的注意事項有哪些,以下就是實戰案例,一起來看一下。

function addMethod(object, name, fn){    var old = object[name];
    object[name] = function()    {        if (fn.length == arguments.length)            return fn.apply(this, arguments);        else if (typeof old == 'function')            return old.apply(this, arguments);
    };
}// 不传参数时,返回所有namefunction find0(){      return this.names;
}// 传一个参数时,返回firstName匹配的namefunction find1(firstName){      var result = [];      for (var i = 0; i < this.names.length; i++)
    {            if (this.names[i].indexOf(firstName) === 0)
        {      
            result.push(this.names[i]);    
        }  
    }      return result;
}// 传两个参数时,返回firstName和lastName都匹配的namefunction find2(firstName, lastName){     var result = [];      for (var i = 0; i < this.names.length; i++)
    {            if (this.names[i] === (firstName + " " + lastName))
        {      
            result.push(this.names[i]);    
        }  
    }      return result;
}function Users(){
    addMethod(Users.prototype, "find", find0);
    addMethod(Users.prototype, "find", find1);
    addMethod(Users.prototype, "find", find2);
}var users = new Users();
users.names = ["John Resig", "John Russell", "Dean Tom"];console.log(users.find()); // 输出[ &#39;John Resig&#39;, &#39;John Russell&#39;, &#39;Dean Tom&#39; ]console.log(users.find("John")); // 输出[ &#39;John Resig&#39;, &#39;John Russell&#39; ]console.log(users.find("John", "Resig")); // 输出[ &#39;John Resig&#39; ]console.log(users.find("John", "E", "Resig")); // 输出undefined

我相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

相關閱讀:

CSS中的margin負值如何使用

一個好用的jquery的表單驗證外掛程式

js宣告函數的四種方式

以上是JavaScript的函數重載詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn