타성 함수와 콜리화 함수

3768 단어 성능함수
먼저 타성 함수가 무엇인지 말씀드리겠습니다. 말 그대로 게으른 함수는 브라우저 호환성을 해결하는 데 자주 사용됩니다. 예를 들어 한 가지 방법에서 호환성 문제가 발생할 수 있습니다. 서로 다른 브라우저는 서로 다른 방법에 대응합니다. 처음에 우리는 이런 방법을 두루 훑어보고 가장 적합한 것을 찾고 이 방법을 그 함수에 덮어씁니다.이것이 바로 타성 함수이다. 즉, 한 번만 훑어보고 최선의 방안을 찾는 것이다. 다음에 그 방법을 찾으려고 할 때 훑어보지 않고 성능을 향상시킨다.
getXHR: (function () {
            var item = [
                function () {
                    return new XMLHttpRequest()
                },
                function () {
                    return new ActiveXObject('Microsoft.XMLHTTP');
                },
                function () {
                    return new ActiveXObject('MsXML2.XMLHTTP');
                }, function () {
                    return new ActiveXObject('MsXML3.XMLHTTP');
                }
            ]
            for (var i = 0; i < item.length; i++) {
                try {
                    return item[i]
                } catch (err) {
                    continue
                }
            }
            throw new Error('not support')
        })(),

상술한 코드는 처음 실행할 때만 훑어보았고, 가장 적합한 것을 찾으면 되돌아왔으며, 나중에 다시 사용하면 훑어볼 필요가 없다.
무엇이 코리화 함수입니까?코리화 함수는 사실 일종의 작법이다.
function(){
    return function(){}
}

이런 작법의 함수는 바로 콜리화 함수인데, 그렇다면 이런 작법은 어떤 장점이 있습니까?일부 문제를 해결할 때 이 중에서 쓰는 방법은 매우 좋다. 특히 일부 함수가 매개 변수를 전달하기 어려운 문제는 JS의 사건에서 하나의 매개 변수는 브라우저가 가지고 있는 것이다. 그것이 바로 사건 e이다. 그러나 때때로 우리는 귀속 사건 대상의this를 바꾸고 싶지만 e가 없어서는 안 된다. 그러면 코리화 함수는 사용된다.
bind: function (fn,context) {
            if (Function.prototype.bind) {
                return fn.bind(context);
            }
            return function(){
                fn.apply(context,arguments)
            }
        }

이렇게 쓰면 나는 몇 개의 매개 변수를 전달하고 싶다. 사실 중요한 것은 어떻게 쓰느냐가 아니라 사상이다.일부 동적 으로 함수 를 만드는 방법 에서 코리화 함수 도 자주 사용되고, 일부 큰 틀 에서도 이런 작법 을 자주 사용한다

좋은 웹페이지 즐겨찾기