Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Можно ли писать определение функции внутри document.ready()? (https://javascript.ru/forum/jquery/28959-mozhno-li-pisat-opredelenie-funkcii-vnutri-document-ready.html)

Fatalityap 08.06.2012 16:58

Можно ли писать определение функции внутри document.ready()?
 
Привет специалисты, возник вопрос в споре с коллегой, он говорит что нельзя писать определение функции внутри documnet.ready() Ну что-то типа такого:

$(document).ready(function(){

  function abc()
  {
      console.log("ABC");
  }

});


Типа что не все браузеры увидят функцию которая внутри document.ready, ну в данном случае функцию abc. Что скажете?

devote 08.06.2012 17:00

а что мешает ее сделать видимой?
$(document).ready(function(){
 
  function abc()
  {
      console.log("ABC");
  }
 
  window.abc = abc;
});

devote 08.06.2012 17:02

Цитата:

Сообщение от Fatalityap
Типа что не все браузеры увидят функцию

и что значит браузеры не увидят? интерпретатор браузера при выполнении все что надо увидит.

Serg_pnz 08.06.2012 17:10

я так внутри пишу
$(document).ready(function(){

  var Fun = function(go)
  {
      console.log(go);
  }

Fun('xyz');

});

Fatalityap 09.06.2012 14:24

$(document).ready(function(){
 
  function abc()
  {
      console.log("ABC");
  }
 
  window.abc = abc;
});


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

Fatalityap 09.06.2012 16:12

А ну да, можно же использовать свой глобальный объект, а не window у меня правильный ход мыслей?

devote 09.06.2012 17:25

Цитата:

Сообщение от Fatalityap
а не window у меня правильный ход мыслей?

конечно
var myObject = {}

$(document).ready(function(){
  
  function abc()
  {
      console.log("ABC");
  }
  
  myObject.abc = abc;
});

Fatalityap 10.06.2012 03:35

Спасибо, в принципе со всем разобрался. Буду регулярно теперь тут общаться ;)


Часовой пояс GMT +3, время: 08:08.