importance: 5
Tạo một decorator delay(f, ms) để trì hoãn mỗi lần gọi f bằng ms mili giây.
Ví dụ:
function f(x) {
alert(x);
}
// tạo các wrapper
let f1000 = delay(f, 1000);
let f1500 = delay(f, 1500);
f1000("kiểm tra"); // hiển thị "kiểm tra" sau 1000ms
f1500("kiểm tra"); // hiển thị "kiểm tra" sau 1500msNói cách khác, delay(f, ms) trả về một biến thể "trễ bởi ms" của f.
Trong đoạn mã trên, f là một hàm của một đối số duy nhất, nhưng giải pháp của bạn phải chuyển tất cả các đối số và ngữ cảnh this.