Есть много причин, чтобы не использовать глобальные методы.
Сначала набирается. Типы методов уже связаны с классом / экземпляром. Чтобы ввести глобальную функцию, вы также должны перезаписать модуль global
.
Второй - это конфликт имен. Вы можете легко перезаписать один глобальный метод другим. В случае методов класса: вы можете назвать каждый закрытый метод в классах method
, и ни один из них не будет перезаписан.
В-третьих, вы не можете использовать this
в качестве экземпляра класса в глобальной функции.
Четвертый - это скоростной (но я не знаю, сколько) закрытый метод находится в базовом объеме c, а глобальный - в последнем. Поэтому V8 в runTime проверит каждую область видимости между этим и глобальным.