Каково различие между функциональным объектом и вызываемым объектом?

Нет, это невозможно.

PostgreSQL - это реляционная СУБД, наиболее эффективно работающая на должным образом нормализованных моделях данных. Массивы - это по определению упорядоченные наборы - не реляционные структуры данных, поэтому стандарт SQL не поддерживает определение внешних ключей для элементов массива, как и PostgreSQL.

Тем не менее, вы можете создать превосходную базу данных с элементами массива, связанными с первичными ключами в других таблицах. Однако эти элементы массива нельзя объявить внешними ключами, и поэтому СУБД не будет поддерживать ссылочную целостность.

19
задан Gumbo 22 May 2009 в 09:41
поделиться

1 ответ

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

В JS похоже, что Callable - это все, что имеет внутренний метод [[Call]] ( идентифицируется типом "функция", а не "объект"). Функция (как показано на слайде) является потомком объекта Function. Я могу ошибаться, но в сценарии вы можете создавать только функции, в то время как реализация ECMAScript может определять вызываемые объекты, которые не являются функциями.

Если вы попробуете фрагмент кода со слайда как с анонимными функциями / выражениями функций, так и с объявленными функциями , результаты такие же.

typeof function() {}; // == 'function'
({}).toString.call(function() {}) // == '[object Function]'
function foo() {}
typeof foo; // == 'function'
({}).toString.call(foo) // == '[object Function]'
11
ответ дан 30 November 2019 в 05:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: