2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 javascript вопрос
Сообщение27.12.2009, 09:23 
Подскажите, пожалуйста...
Если сначала объявить функцию использующую какой либо элемент идущий потом, то выдаёт ошибку, если сначала объявить этот элемент а потом в самом конце функцию то всё работает, есть ли способ для первого случая?

 
 
 
 Re: javascript вопрос
Сообщение28.12.2009, 17:28 
2mycoding
Приведите фрагмент кода, пожалуйста.

А вообще, как правило, в js почти всегда можно написать код так, что --- учитывая интерпретируемость и ленивость этого языка --- потребности в неявно вами подразумеваемых упреждающих объявлениях попросту не может возникнуть.

Другими словами, в js вместо forward declaration используется forward reference.

Например, следующий фрагмент вполне корректен:
Используется синтаксис Javascript
    function f() {return a;} // The entity "a" is undeclared yet.

    var a=0; // Actual declaration.
    print(f()); // It's Ok since "a" in the scope.
 


P.S.: В этом смысле, вроде-бы есть существенная разница между js v1.5 и v2.0, но я почти не разбираюсь в этих языках. :)

 
 
 
 Re: javascript вопрос
Сообщение28.12.2009, 20:17 
Код:
<script>
document.getElementById('b').onclick = function()
{
alert(1);
}
</script>

<button id=b>Кнопка</button>

 
 
 
 Re: javascript вопрос
Сообщение29.12.2009, 07:16 
2mycoding
Можно сделать так:
Используется синтаксис HTML
<script>
    function Loader()
    {
        document.getElementById('b').onclick=function()
        {
            alert(1);
        }
    }
</script>

<body onload="Loader()">
    <button id="b">Button</button>
</body>
 


А можно так:
Используется синтаксис HTML
    <button onclick="alert(1)">Button</button>
 

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group