2016-12-08 6 views
0

я работаю на наследство JS скрипт:Что это Js фрагмент кода означает, возвращая недавно объявленную переменную с неопределенным методом

!function(e, t) { 
var a = function() { 
     return new a.init 
    }, 
...... 
//end of JS script 1800 lines later 
a.init.prototype = a.prototype, e.PDC = a 
}(window, jQuery); 

я знаю, что! это способ объявления IIFE, но первое объявление переменной, я не понимаю, потому что метод init переменной a еще не объявлен!

+1

Вы опустили фигурный кронштейн? Два открытых, но три закрытых – fafl

+0

я опустил скобку, есть куча функций, определенных внутри, я надеюсь, что вам будет достаточно, чтобы понять, что сценарий очень большой –

+0

Ссылка на полный скрипт может помочь –

ответ

0

Значения переменных внутри функции не отображаются до тех пор, пока функция не будет вызвана.

Учитывая return new a.init, это не имеет значения, что a является undefined (это является декларируется), когда функция создана, она будет представлена ​​функция называется.

+0

о, я вижу спасибо за объяснение –