Всем привет!
Несколько раз перечетал MDN и Microsoft. Так и не могу понять, что в этом конкретном случае из этого кода является this в .bind(this, n_parent, text)?
Ребят, можете подсказать - это сама функция f передаётся таким образом или к чему происходит привязка?
Или, по-другому, что можно подставить в этом случае вместо this?
Код:
for(let i = 0; i < 5; i++){
let n_parent = document.createElement('div');
n_parent.classList.add('parent');
let n_child = document.createElement('div');
n_child.classList.add('child');
n_child.classList.add('cover');
n_parent.appendChild(n_child);
let text = i;
let f = addText.bind(this, n_parent, text);
n_parent.addEventListener('click', f);
document.body.appendChild(n_parent);
}
function addText(node, text){
let n_p = document.createElement('p');
n_p.innerHTML = text;
node.appendChild(n_p);
}
let f = addText.bind(null, n_parent, text);– May 04 '18 at 18:50this- контекст. В данном кодеthis-windowlet f = addText.bind(this)означает, что при вызовеf(), вы по сути делаетеwindow.addText()– MedvedevDev May 04 '18 at 19:04strict mode– Grundy May 04 '18 at 19:10