Ushbu ochiq manbali loyihani butun dunyo bo'ylab odamlar uchun taqdim etmoqchimiz.

Ushbu qo'llanmaning mazmuni sizning tilingizga tarjima qilishga yordam bering!

darsga qaytish

Dekorativ ayg'oqchi

Barcha chaqiruvlarni calls xususiyatida ishlashga saqlaydigan o’ramni qaytaradigan dekorativ spy(func) yarating.

Har bir chaqiruv argumentlar massivi sifatida saqlanadi.

Masalan:

function work(a, b) {
  alert( a + b ); // ixtiyoriy funktsiya yoki usuldak ishlaydi
}

work = spy(work);

work(1, 2); // 3
work(4, 5); // 9

for (let args of work.calls) {
  alert( 'call:' + args.join() ); // "call:1,2", "call:4,5"
}

P.S. Ushbu dekorativ ba’zan birlik sinovi uchun foydalidir. Kengaytirilgan shakli – Sinon.JS kutubxonasida sinon.spy.

Sinovlar bilan sandbox-ni oching.

Bu yerda biz barcha argumentlarni logda saqlash uchun calls.push(args) va chaqiruvni yo’naltirish uchun f.apply(this, args) dan foydalanishimiz mumkin.

function spy(func) {
  function wrapper(...args) {
    // using ...args instead of arguments to store "real" array in wrapper.calls
    wrapper.calls.push(args);
    return func.apply(this, args);
  }

  wrapper.calls = [];

  return wrapper;
}

Yechimni sandbox-dagi sinovlar bilan oching.