Да, методы, которые вы применяете к элементам, выбранным с помощью jquery, называются jquery-плагинами, и имеется большое количество информации об авторстве в документах jquery.
Стоит отметить что jquery является просто javascript, поэтому нет ничего особенного в «методе jquery».
Язык на самом деле не определяет, как должна осуществляться базовая реализация. Это оставлено на усмотрение поставщика компилятора. Я сомневаюсь, что они используют структуру или запись. Любой ответ, который вы найдете, будет зависеть от поставщика, а не от языка. Стоит отметить, что наиболее распространенный компилятор, GNAT, является открытым исходным кодом, поэтому исходный код доступен для просмотра и попытки разобраться, как они это делают. Опять же, это только одна потенциальная реализация. Другие компиляторы могут делать это по-другому.
Если вы просто имеете в виду, как может выглядеть пример пакета:
empty my_package.ads:
package My_Package is
-- Empty package
end My_Package;
my_package.ads с типом типа «класс»:
package My_Package is
type My_Type is tagged private;
function Get_Value(Self : My_Type) return Integer;
private
type My_Type is tagged record
Value : Integer := 2;
end record;
end My_Package;
my_package.adb с определениями операций:
package body My_Package is
function Get_Value(Self : My_Type) return Integer is
begin
return Self.Value;
end Get_Value;
end My_Package;
Как видите, пакеты могут быть пустым Они могут иметь типы, операции или оба. Пакеты - это место, где обрабатывается инкапсуляция (в отличие от типа, подобного C ++ и Java). Таким образом, вы можете иметь частные типы и операции в пакете, но не заниматься традиционным объектно-ориентированным программированием.
Пакет Ada - это в основном просто пространство имен, поэтому он не влияет на исполняемый код, генерируемый компилятором.
Позвольте мне попытаться проиллюстрировать это.
Ада:
...
A := B;
...
может излучать такой код, как:
...
CPY B, A
...
Ада:
package P is
B: Integer;
...
end;
...
A := P.B;
...
может излучать точно такой же код. Тот факт, что B теперь находится внутри пакета, не меняет выданный код.
Пакет может иметь код инициализации, который будет реализован очень похоже на процедуру. Создание экземпляра универсального пакета может быть реализовано как запись (компоненты которой содержат универсальные параметры) или может быть развернуто на месте, и в этом случае ситуация такая же, как и с неуниверсальным пакетом.
Интересный вопрос! Почему ты спрашиваешь?