2015-08-07 2 views
2

Я смотрел на источник плагина jQuery, чтобы увидеть, как он работает, и способ настройки параметров для плагина является для меня новым. Может кто-нибудь объяснить, как это работает?jQuery Plugin - Как эти настройки работают?

$.fn.thePluginFunc = function(settings) { 

     settings = settings || {}; // Why is it using an OR? 

     var g = settings.g || -3; // How/why are the values access this way? 
     var dt = settings.dt || 20; 
     var bounce = settings.bounce || 0.7; 
     var endVelocity = settings.endVelocity || 20; 
     var stagger = settings.stagger || 200; 
     var relativeToDocument = settings.relativeToDocument || false; 
     var clear = settings.clear || false; 
     var fallToLeft = settings.fallToLeft || false; 

ответ

1

Это один из способов, чтобы проверить, присутствует ли объект или нет. Если объект не существует значения по умолчанию устанавливаются

В приведенном выше примере settings представляет собой объект, используемый в качестве аргумента thePluginFunc если setting объекта присутствует, если оно не находится в этом случае он принимает {}.

То же, как и приведенный ниже код

if(settings){ 
    settings = settings; // if the object is there 
} 
else{ 
    settings = {}; // set if the object is not 
} 

или использовать как

settings = settings || {}; 

выше два фрагмента кода являются одинаковыми.

0

Если вы передадите объект настроек функции thePluginFunc, переменные внутри функции будут инициализированы с помощью вашей настройки, иначе, если вы не передадите какой-либо объект функции, переменные будут инициализированы значениями по умолчанию, такими как -3, 20, 0,7 экз.

Например, в первом var, если settings.g ve, значение g будет инициализировано значением внешних настроек, в противном случае - с помощью параметра -3.

Используя этот метод, вы можете использовать не весь объект, как это:

settings = {g: "abc", dt: "def"}; 

тогда результат:

var g = "abc"; 
    var dt = "def"; 
    var bounce = 0.7; 
    var endVelocity = 20; 
    var stagger = 200; 
    var relativeToDocument = false; 
    var clear = false; 
    var fallToLeft = false; 
0

В JavaScript || использование оператора для OR выражения. Следуйте этому поведению, если первый операнд имеет значение false [т.е. '' (пустая строка), undefined], он вернет второе значение операнда.

settings = settings || {}; // Why is it using an OR? 

Если у вас нет каких-либо параметров, то инструкция выше назначает пустой объект.

То же следует за другой переменной.

Надеюсь, что это даст вам четкое представление.

Смежные вопросы