Javascript перегрузка функции и использование строгого режима - PullRequest
0 голосов
/ 04 марта 2020

У меня вопрос о javascript, как показано ниже:

__test(function(a,b,c){"use strict"; ....
__test(function(a,b,c){"use strict"; ....
__test(function(a,b,c){"use strict"; ....
__test(function(a,b,c){"use strict"; ....

, если у нас есть вышеуказанный код, как будут выполняться функции? Я знаю, что Javascript не поддерживает перегрузку функций, но я хочу знать, изменяет ли директива use strict это поведение.

1 Ответ

1 голос
/ 04 марта 2020

Пожалуйста, смотрите этот ответ относительно перегрузки функции в JavaScript: Перегрузка функции в Javascript - Лучшие практики . JavaScript не поддерживает перегрузку ни в одной версии языка, поэтому прагма "use strict" не изменит это поведение.

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

...