Fikri nasıl dönüştürmek document.querySelectorAll('a')
bir gelen
NodeList
düzenli diziye?
Bu sahip olduğumuz kod,
[].slice.call(document.querySelectorAll('a'), 0)
Önce sökelim,
[] // Array object
.slice // Accessing the function 'slice' present in the prototype of Array
.call // Accessing the function 'call' present in the prototype of function object(slice)
(document.querySelectorAll('a'),0)
// 'call' can have arguments like, (thisArg, arg1,arg2...n).
// So here we are passing the 'thisArg' as an array like object,
// that is a 'nodeList'. It will be served as 'this' object inside of slice function.
// And finally setting 'start' argument of slice as '0' and leaving the 'end'
// argument as 'undefined'
Adım: 1 call
Fonksiyonun yürütülmesi
- İçinde
call
, thisArg
argümanların geri kalanı dışında bir argüman listesine eklenir.
- Şimdi işlev
slice
, this
değerini
thisArg
(dizi benzeri nesne geldiğinden document.querySelector
) ve bağımsız değişken listesiyle bağlayarak çağrılır . ie] start
içeren argüman0
Adım: 2 slice
İçinde çağrılan işlevin yürütülmesicall
Not: Senaryomuzu daha iyi anlamak için, bağlamımız için gerekli olan bazı adımlar orijinal çağrı ve dilim algoritmasından yoksayılmıştır .
Array.prototype.slice.call(document.querySelectorAll('a'));
yazdığınız kod yığınını yazmanın uygun bir yoludur.