>  기사  >  웹 프론트엔드  >  JavaScript의 함수 오버로딩에 대한 자세한 설명

JavaScript의 함수 오버로딩에 대한 자세한 설명

php中世界最好的语言
php中世界最好的语言원래의
2018-03-09 13:28:351678검색

이번에는 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에서 음수 여백 값을 사용하는 방법

유용한 jquery 양식 유효성 검사 플러그인

js에서 함수를 선언하는 네 가지 방법

위 내용은 JavaScript의 함수 오버로딩에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.