Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   обращение из html к методам в файле.js (https://javascript.ru/forum/misc/39319-obrashhenie-iz-html-k-metodam-v-fajjle-js.html)

skrudjmakdak 25.06.2013 17:10

собственно а в чем разница? что так идет что так.. Знайте такое: кто как может тот так и др**ит))

danik.js 25.06.2013 17:20

Цитата:

Сообщение от skrudjmakdak
собственно а в чем разница?

Почитай про прототипы и поймешь. Если в кратце, то разница есть когда создается несколько экземпляров, а не один. Про автокомплит я наверно не буду упоминать.

skrudjmakdak 25.06.2013 17:23

ммм.. почитаю как нибудь на досуге

riva 25.06.2013 17:41

skrudjmakdak Спасибо! Только у меня Ваш пример не получилось сразу применить. Сидел около часа и пытался разобраться в чем дело.
Потом просто скопировал Ваш код - и заработало. И хочется спросить -
в чем разница между этими двумя ( для меня одинаковыми ) кодами ?
Ваш :
function Obj()
        {
            return {
                method: function(a,b)
                {
                    return a + b;
                }
            };
        }

мой :
function Obj()
        {
            return 
            {
                method: function(a,b)
                {
                    return a + b;
                }
            };
        }

skrudjmakdak 25.06.2013 17:43

я знаю.. тупо конечно... но дело именно в этом:
return
     {

кавычка начинается с новой строчки, а должна быть на той же(как у меня). почему, не знаю

riva 25.06.2013 17:46

Пойду тогда ещё про прототипы почитаю ,иии...если что то спрошу ещё что нибудь)

riva 25.06.2013 18:12

И есть ещё не понятный момент. Файл.js лежит в том же пакете ,что и html
в котором ,как я понимаю есть строчка указывающая на путь для импорта:
<script type="text/javascript" src="Obj.js"></script>

Теперь по все той же простой логике я создаю экземпляр класса и обращаюсь к его свойству через переменную ссылающуюся на это экземпляр:
<script type="text/javascript" src="Obj.js"></script>
    <script>
        var obj = new Obj();
        var res = obj.method( 4 , 7 );
        console.log( res ) ;
    </script>

И класс Obj создан так как вы мне и показывали. Что я не так делаю?

danik.js 25.06.2013 18:51

Цитата:

Сообщение от skrudjmakdak
кавычка начинается с новой строчки, а должна быть на той же(как у меня). почему, не знаю

Потому что в js можно не ставить в конце инструкций точку с запятой, так что парсер сам догадывается где конец строки означает конец инструкции. В таких случаях как этот, конец строки распознается как конец инструкции. Вот такие пироги. Быть может не совсем верно все объяснил (ну не читал я умных книжек, не читал), но суть примерно такая.

skrudjmakdak 25.06.2013 20:40

riva, теперь открывайте фаербаг (в хроме f12), вкладка консоль.. и смотрим что там пишут...

по идеи должна вывалиться ошибка (если код не отрабатывается), а также номер строчки и имя файла в котором произошла ошибка..

skrudjmakdak 25.06.2013 20:40

пишите что за ошибка, либо кидайте скриншот.. поглядим))


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