Непонятки в анимации
вот полный код
function animate(opts) { var start = new Date; var timer = setInterval(function() { var progress = (new Date - start) / opts.duration; opts.step(progress); if(progress > 1) progress = 1; if(progress == 1) clearInterval(timer); }, 15) return timer; } function animateProp(opts) { var start = opts.start; var end = opts.end var prop = opts.prop; opts.step = function(progress){ opts.elem.style[prop] = start+(end-start)*progress+ 'px'; } return animate(opts); } var div = document.getElementById('opa'); div.onclick = function() { animateProp({start:0,end:100, prop:'marginLeft', duration:1000, elem:div}) } Несколько вопросов.... 1) При клике вызывается ф-я animateProp(а тут ее параменты) но почему они заключены в {}, если это объект, не разумнее было было сделать так : animateProp(opts= {start:....}) ??? 2) При вызове ф-и animateProp, те параметры, которые указываются в ({}) - обращаются к ПЕРЕМЕННЫМ? Ну например в параметре указано animateProp({start:0}), а в этой же ф-и : animateProp(opts) {var start = opts.start} так свойство {start:0}, обращается вначале к var start, а затем переход в opts.start ? Если да, то почему мы не можем поставить (без var) просто opts.start, ведь opts.elem имеется и работает.... |
Цитата:
Цитата:
а в обще- http://learn.javascript.ru/ Цитата:
локальная переменная start инициируется значением свойства start, получаемого объекта в качестве аргумента функции |
это я знаю.
Меня интересует вопрос. Почему работает вот это opts.elem без переменной var elem = opts.elem; |
Цитата:
Цитата:
Цитата:
Цитата:
и присваивание переменной ничего не изменит |
тогда почему нельзя сделать тоже самое с остальными?
Например opts.start вместо var start = opts.start. Тут же тоже идет присвание |
Цитата:
Цитата:
Не нужно думать "тоже самое , не тоже самое" -нужно учить основы |
Хмммм.... раз elem:div, где div - значение свойства (elem), является объектом, который передается по ссылке в виде параметра, правильно?
Тогда что значит передача по значению?? В учебнике (где объекты) не нашел такое информации, может пропустил....:cray: |
Цитата:
Цитата:
первая же ссылка http://js-help.net/text/function/pos...arametrov1.php |
Блин, там как-то более понятно, наверное потому что на простых примерах.... переменная и объект.
А у нас тут значение свойства и объект. эх Наверное единственно что я понял, это то, что если значение свойства не на что не ссылается, а имеет только лишь значение это есть передача по значению (простая). и то врятли это истина ( |
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 21:32. |