Что такое полифилл (Polyfill)?

Тенденции разработки программного обеспечения в 2022 году Изучение

Polyfill — это способ изменить или добавить новые функции. По сути, это фрагмент кода для добавления/изменения новых функций. Он используется для обеспечения современной функциональности веб-браузеров.

По сути, это фрагмент кода, обеспечивающий современные функциональные возможности веб-браузеров.
Он используется для добавления/изменения новых функций.

Это похоже на резервный вариант браузера: если ваш браузер не предоставляет функцию map(), вам нужно будет написать свою собственную функцию map(). Мы обсудим полифиллы для следующих методов:

  • Using map( )
  • Using forEach( )
  • Using reduce( )

Мы напишем собственные функции map(), forEach() и reduce(). Все это функции более высокого порядка, которые определены внутри Array.prototype, чтобы они были доступны для всего объявленного массива.

Для создания собственного полифилла нам нужно объявить их внутри Array.prototype.

1. Polyfill for map( ) function

Пример: нам дан массив, и нам нужно умножить каждый элемент на два.

Javascript

const arr = [1, 2, 3, 4, 5];
 
function callback(ele) {
    return ele * 2;
}
 
Array.prototype.myMap = function (callback) {
    const myArr = [];
    for (const i in this) {
        myArr.push(callback(this[i]));
    }
    return myArr;
};
 
const newArr = arr.myMap(callback);
for (i in newArr) {
    console.log(newArr[i]);
}

Выход:

2
4
6
8
10

2. Polyfill for forEach( ) function

Пример: создание собственной функции, подобной функции forEach() в JavaScript.

Javascript

const arr = [1, 2, 3, 4, 5];
 
function myFunction(ele) {
    console.log(ele);
}
 
Array.prototype.myForEach = function (callback) {
    for (const i in this) {
        callback(this[i]);
    }
};
 
arr.myForEach(myFunction);

Выход:

1
2
3
4
5

3. Polyfill for reduce( ) function

Пример: Найдите сумму всех четных чисел в заданном массиве.

Javascript

const arr = [1, 2, 3, 4, 5, 6];
 
function callback(ele) {
    if (ele % 2 == 0) {
        return true;
    }
 
    return false;
}
 
Array.prototype.myReduce = function (callback, sum) {
    for (const i in this) {
        if (callback(this[i])) {
            sum += this[i];
        }
    }
    return sum;
};
 
const sum = arr.myReduce(callback, 0);
console.log(sum);

Выход:

12

Читайте также:  Как выбрать лучший SDK для вашей пользовательской платформы электронных книг
Оцените статью
bestprogrammer.ru
Добавить комментарий