Помогите разобрать пример с bind

170
03 марта 2018, 21:56

var theSet = ["Carel Haverbeke", "Maria van Brussel", 
              "Donald Duck"]; 
function isInSet(set, person) { 
  return set.indexOf(person.name) > -1; 
} 
  
console.log(ancestry.filter(function(person) { 
  return isInSet(theSet, person); 
})); 
  
  
console.log(ancestry.filter(isInSet.bind(null, theSet)));

Первый console.log понятен. А второй который с bind... я сначала не понял почему никуда не передается person, он ведь по идее будет undefined. Ведь filter принимает функцию, аргумент которой равен каждому отдельно взятому элементу перебираемого массива. А тут просто theSet.

Я правильно понимаю, что при такой записи возвращается функция, но в ней уже заранее прописан первый аргумент theSet? То есть получается обычный фильтр filter(function (person){return set.indexOf(person.name) > -1;}), а аргумент set как бы в памяти, если так можно выразиться? Просто хочу убедиться, что понял как работает второй вариант вызова.

Answer 1

Да, Вы понимаете правильно.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_objects/Function/bind

fun.bind(thisArg[, arg1[, arg2[, ...]]])

arg1, arg2, ... - Arguments to prepend to arguments provided to the bound function when invoking the target function.

arg1, arg2, ... - параметры, которые будут переданы в функцию fun, перед теми, которые будут переданы в функцию, возвращаемую fun.bind, кодом, который будет эту функцию вызывать

READ ALSO
Шахматная доска, по книге “Выразительный JavaScript”

Шахматная доска, по книге “Выразительный JavaScript”

Условия самой задачиЕдинственное что у меня не получается, это сделать через одну строку крайний левый пробел

165
Как понять отправку сообщения в ООП?

Как понять отправку сообщения в ООП?

Здравствуйте! На данный момент изучаю ООП и столкнулся с непониманием фразы "отправка сообщения"

155
Kartik Editable + Popover дополнительный функционал

Kartik Editable + Popover дополнительный функционал

Подскажите пожалуйста как реализовать такой функционал, есть табличка (kartik gridview) с редактируемыми полями (editable) одно из полей - комментарий,...

147
Замена в select средством js

Замена в select средством js

Здравствуйте, есть такой скрипт и проблема происходит в том, что при выборе предыдущего варианта, он не заменяет тут значения, а добавляетПытался...

174