построение объекта в сравнении Object.is()

#javascript #object #comparison

Вопрос:

   let obj = {
  one : 1 , 
  two : 1 , 
  three : 1 , 
}


function recursiveCheckEqual(x , ...rest){
  return Object.is(x , rest[0]) amp;amp; (rest.length < 2 || recursiveCheckEqual(...rest));
}

recursiveCheckEqual(1 , obj). //  why return single "false"
 

это было сравнение стоимости объекта более чем с двумя значениями . Однако я не могу разобраться в этом , как это на самом деле работает ?
1 . как он достигает рекурсивности ?
2 . возвращает ли «return» весь аргумент ( объект—to — — — rest ) ;

Комментарии:

1. » как это достигается рекурсивно ? «потому что он рекурсивно вызывает себя с recursiveCheckEqual(...rest)

2. @VLAZ , но почему вычисленный результат является ложным? recursiveCheckEqual(1 , obj) => одна строка false

3. Потому 1 что это не равно obj . С двумя аргументами все recursiveCheckEqual(1 , obj) , что нужно сделать, это выполнить Object.is(1, obj) , и он даже не будет рекурсивно вызывать себя. Число не равно объекту, поэтому оно возвращается false .