Подтвердить что ты не робот

Для чего используется пользовательская функция (p, a, c, k, e, d)?

Я видел много веб-сайтов с некоторыми function (p,a,c,k,e,d) в своем javascript-коде. На разных веб-сайтах может быть разное тело этой функции, но почему все они используют эти имена параметров (p,a,c,k,e,d)? Я имею в виду, это стандарт или что-то или библиотека, что они следуют тому же соглашению.

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

Можете ли вы мне помочь в понимании этого кода: eval() используется для оценки выражений типа 2+3, но как следующий код передает ему функцию?

try{
        eval(
            function(p,a,c,k,e,d)
                {
                  //some code goes here
                }
    }catch(err){}

Этот вопрос может показаться глупым, но серьезно я хочу понять тайну function(p,a,c,k,e,d), поэтому не делайте снизу.

4b9b3361

Ответ 1

Итак, если вы используете http://matthewfl.com/unPacker.html, как я писал в комментариях, он "распаковывает" код следующим образом:

(function()
    {
    var b="some sample packed code";
    function something(a)
        {
        alert(a)
    }
    something(b)
}
)();

Он не кажется злым. Для мягкого аргумента о том, почему вы это используете, см. javascript packer против minifier:

Упаковка меньше, но медленнее.

И еще сложнее отладить.

Большинство известных фреймворков и плагинов только минимизируются.


Packer делает больше, чем просто переименовывает vars и аргументы, он фактически отображает исходный код с использованием Base62, который затем должен быть перестроен на клиенте с помощью eval() для использования.

Боковой шаг eval() - это злые проблемы здесь, это также может создать большое количество накладных расходов на клиенте во время загрузки страницы при запуске упаковка больших JS-библиотек, таких как jQuery. Вот почему только делать minify на вашей продукции JS рекомендуется, так как если у вас достаточно кода для нужно сделать упаковку или минимизировать, у вас достаточно кода, чтобы сделать eval() дросселировать клиента во время загрузки страницы.


Minifier удаляет ненужные вещи, такие как символы пробела где в качестве упаковщика идет еще один шаг и делает все возможное, чтобы свести к минимуму размер javascript. Например, он переименовывает переменные в меньшие имена.

Ответ 2

Это функция, которая распаковывает сжатый/обфускационный код javascript. Многие библиотеки JS и скрипты используют его.

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

Ответ 3

Как я понял, eval(function(p,a,c,k,e,d){}) используется в http://www.indiabix.com, который использует его для скрытия всего содержимого, когда пользователь загружает страницу и Открой это. Возможно, это внутренняя работа конкретного кода.