<script>
var resultValue = "1";
function throttle(fn) {
console.log(arguments);
let params = Array.from(arguments);
params.shift();
let res = arguments[arguments.length - 1];
params.pop();
let canRun = true;
return () => {
if (!canRun) return;
canRun = false;
setTimeout(() => {
canRun = true;
window[res] = fn.apply(this, params);
console.log(resultValue);
return res;
}, 2000);
};
}
function sayHi(value1, value2) {
console.log(value1, value2);
return "result=======";
}
var x = throttle(sayHi, 1, 2, "resultValue");
setInterval(() => {
x();
}, 500);
</script>