Я понимаю, о самостоятельных ссылающихся на анонимных функциях, например, так:В чем смысл автономных, анонимных, javascript-функций?
(function() {
//...
})();
и что большая часть времени они используются для создания затворов и абстрагирования переменных в рамках. Однако я также видел источники на разных сайтах, объявляющих анонимные функции, но они не вызывают их. Мне любопытно, как они используются. Вызываются ли они при загрузке сценария? Обратите внимание, что на вкладке sources они не выглядят как .js-файлы. Вместо этого у них есть имя, как так:
extensions::utils
или extensions::Event
т.д.
Они выглядят, как будто они часть своего рода рамки/библиотеки? Я не уверен. Например extensions::Event
имеет этот код внутри:
(function($Object, $Function, privates, cls, superclass) {'use strict';
function Event() {
var privateObj = $Object.create(cls.prototype);
$Function.apply(cls, privateObj, arguments);
privateObj.wrapper = this;
privates(this).impl = privateObj;
};
if (superclass) {
Event.prototype = Object.create(superclass.prototype);
}
return Event;
}) //<-Self invocation missing.
Как вы можете видеть это только декларироваться, но не используется. Единственное, о чем я могу думать, это то, что эта анонимная функция фактически назначается переменной с именем Event
и является частью объекта extensions
или что-то еще?
Это зависит от контекста. Если бы это было загружено непосредственно в веб-браузер или Node.js, это было бы бесполезным мертвым кодом. Однако, если он находится в файле, который является частью какой-либо структуры исходного кода, шаг сборки может очень что-то сделать с этим кодом (например, вызвать его). – Pointy
Где ** точно ** вы видите такой код? – Pointy
https://purgegamers.true.io/g/ под no-domain – Konstantine