Я относительно новичок в JavaScript, и я занимался с открытым исходным кодом чтением исходного кода jQuery. Я заметил, что некоторые, не все, функции определены как «круговые», например
var isWindow = function isWindow( obj ) {
return obj != null && obj === obj.window;
};
Мои мысли:
Я знаю, что делает код. Он проверяет, является ли объект оконным объектом, поскольку у него есть специальное свойство, на которое указывает его поле .window: window === window.window === window.window.window ...
Это как-то связано с подъемом , возможно? если так, то почему было бы хорошо иметь функцию isWindow неопределенной при запуске? И как только он достигнет декларации, почему бы не использовать анонимную функцию?
Спасибо