Доброго времени суток! Я новичок в JS.
Вот
здесь приведен следующий кусок кода:
function selectorMatches(el, selector) {
var p = Element.prototype;
var f = p.matches || p.webkitMatchesSelector || p.mozMatchesSelector || p.msMatchesSelector || function(s) {
return [].indexOf.call(document.querySelectorAll(s), this) !== -1;
};
return f.call(el, selector);
}
Я понимаю, что при .call первый переданный параметр означает контекст.
То есть в итоге
return [].indexOf.call(document.querySelectorAll(s), this) !== -1;
станет
return document.querySelectorAll(s).IndexOf(this) !== -1;
Но как это коррелирует с самим вызовом в строке с
return f.call(element, selector);
?
Как в качестве контекста будет использован переданный element? и разве это не простой аналог querySelectorAll(selector) получается?