2012-05-16 4 views
0

Можно создать дубликат:
JavaScript: var functionName = function() {} vs function functionName() {}JavaScript функции объявление разница

Какой разницу в объявлении этой функции я знаю пример один нормальный способ сделать это, почему нам нужны два и три?

function one(var1,var2) { 
    alert("inside functtion one"); 
} 

two = function (var1,var2) { 
    alert("inside function two"); 
} 

var three = function (var1,var2) { 
    alert("inside function three"); 
} 
+2

три и один (для этого примера) одинаковые .. два беспорядка с областью? прикрепляет его к объекту окна iirc? – rlemon

+0

Check out: http://net.tutsplus.com/tutorials/javascript-ajax/the-basics-of-object-oriented-javascript/ –

+0

@rlemon три и один из них отличаются друг от друга тем, что вы можете вызвать его до его объявления , но вы не можете позвонить три до его назначения. Также одна из них - именованная функция, а три - анонимно, но вы можете обойти это. – Neil

ответ

0

Первый и третий - это всего лишь два способа объявить функцию, которая существует глобально в цепочке видимости. Середина присоединяет функцию two к объекту окна и позволяет там существовать.

console.log(window.one); // undefined 
console.log(window.two); 
console.log(window.three); // undefined 
+0

Примечание: это только ** один ** разница. в зависимости от контекста, который вы задаете, ваш вопрос в закрытии имеет много общего с ним. где эти заявления происходят? – rlemon

+0

его сценарий запускается в заголовке страницы в заголовке – JohnA

+0

, и в чем разница? Не где в документе, где по отношению к остальной части кода javascript. это в закрытии? – rlemon

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