节流,防抖,proxy

        // 节流
        let throttle = function(func, delay) {
            let timer = null;
            return ()=> {
                if (!timer) {
                    timer = setTimeout(() => {
                        func.apply(this, arguments);
                        timer = null;
                    }, delay);
                }
            };
        };
        function handle() {
            console.log(new Date());
        }
        window.addEventListener("scroll", throttle(handle, 1000));

        // 防抖
        function debounce(fn, wait) {
            var timeout = null;
            return () => {
            if (timeout !== null) clearTimeout(timeout);
            timeout = setTimeout(()=> {
                fn.apply(this, arguments);
                timeout = null;
                }, wait);
            };
        }
        function handle() {
            console.log(new Date());
        }
        window.addEventListener("scroll", debounce(handle, 1000));

        // proxy
        let handler = {
            get(target, key, receiver) {
            console.log("get", key);
            return Reflect.get(target, key, receiver);
            },
            set(target, key, value, receiver) {
            console.log("set", key, value);
            return Reflect.set(target, key, value, receiver);
            }
        };
        let obj = {name: '张三', age: 23};
        let proxy = new Proxy(obj, handler);
        proxy.name = "李四";
        proxy.age = 24;

  

猜你喜欢

转载自www.cnblogs.com/huangtonghui/p/11752778.html