обращение из html к методам в файле.js
Подскажите, как сделать ,чтобы из html передать и и получить возвращаемое значение ,в файл.js ?
function myswf() { function calc( a ,b ) { console.log( "nnn" ) return a + b ; } } <!DOCTYPE html> <html> <head> <title></title> <script type="text/javascript" path="myswf.js"></script> <script> /*что нужно написать здесь ,чтобы передать и получить значение *из метода calc? */ </script> </head> <body> </body> </html> |
function myswf(a, b) { function calc( a ,b ) { console.log( "nnn" ) return a + b ; } return calc( a ,b ); } то что нужно написать console.log(myswf(4, 5)) |
Цитата:
|
сделал так
myswf.js function myswf( a , b ) { function calc( a , b ) { console.log( "calc" ) return a + b ; } return calc( a , b ) } html <!DOCTYPE html> <html> <head> <title></title> <script type="text/javascript" path="myswf.js"></script> <script> console.log( myswf( 2 ,4 ) ) </script> </head> <body> </body> </html> ошибка : Цитата:
|
Цитата:
|
Спасибо Вам! И у меня ещё вопрос - в js передавать параметры нужно через конструктор? В нем нет static function? Чтобы минуя myswf сразу к calc обратится?
|
И это я тоже понял. Получается ,что метод calc вложенный в конструктор...Просто по началу подумал ,что myswf это обьявление класса ,а тут получается ,что конструктора.
|
Немножко я поспешил. При использовании swfobject в файл.html
передают параметры через конструктор в функцию swfobject.embedSWF(..param) ; Сам swfobject выглядит как то так - var swfobject=function(){ /*...тело *и где то тут */ embedSWF:function(...param) { /*тело*/ } я пытаюсь сделать тоже самое .то есть через конструктор передать параметры его методу, но не получается. Почему? function myswf() { next : function( a ,b ) { console.log( a + b ) ; } } <!DOCTYPE html> <html> <head> <title></title> <script type="text/javascript" src="myswf.js"></script> <script> var a = 1 ; var b = 2 ; myswf.next( a ,b ) </script> </head> <body> </body> </html> и даже так пробовал var myswf = function () { next : function( a ,b ) { console.log( a + b ) ; } } |
<script> //класс function Obj() { return { method: function(a, b) { return a + b; } }; } //объявляем экземпляр класса var obj = Obj(); //обращаемся к методу класса и результат сохраняем в переменную var result = obj.method(1, 4); console.log(result); </script> |
skrudjmakdak для этого существуют прототипы:
//класс function Obj() { // } Obj.prototype.method = function(a, b) { return a + b; }; //объявляем экземпляр класса var obj = new Obj(); //обращаемся к методу класса и результат сохраняем в переменную var result = obj.method(1, 4); console.log(result); |
собственно а в чем разница? что так идет что так.. Знайте такое: кто как может тот так и др**ит))
|
Цитата:
|
ммм.. почитаю как нибудь на досуге
|
skrudjmakdak Спасибо! Только у меня Ваш пример не получилось сразу применить. Сидел около часа и пытался разобраться в чем дело.
Потом просто скопировал Ваш код - и заработало. И хочется спросить - в чем разница между этими двумя ( для меня одинаковыми ) кодами ? Ваш : function Obj() { return { method: function(a,b) { return a + b; } }; } мой : function Obj() { return { method: function(a,b) { return a + b; } }; } |
я знаю.. тупо конечно... но дело именно в этом:
return { кавычка начинается с новой строчки, а должна быть на той же(как у меня). почему, не знаю |
Пойду тогда ещё про прототипы почитаю ,иии...если что то спрошу ещё что нибудь)
|
И есть ещё не понятный момент. Файл.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 создан так как вы мне и показывали. Что я не так делаю? |
Цитата:
|
riva, теперь открывайте фаербаг (в хроме f12), вкладка консоль.. и смотрим что там пишут...
по идеи должна вывалиться ошибка (если код не отрабатывается), а также номер строчки и имя файла в котором произошла ошибка.. |
пишите что за ошибка, либо кидайте скриншот.. поглядим))
|
Мистика да и только! Сейчас хотел выложить ,то что у меня ,включил - заработало!)
После флешевской консоли ,консоль WS ,кажется какой то хромой) Есть программы лучше? Чтоб тоже консоль была и не надо было ,то в браузере передёргивать ,то в консоли? |
И еще вопрос в догонку. Где то, тут на форуме прочел, что js это язык для браузера ,но есть разновидность серверного json. И
мне стало интересно - а этот json умеет делать тоже самое, что и php ? Конкретно, он может подсчитать кол-во файлов ,узнать их формат и размер ,сгенерировать xml ? А то писать код на php сейчас ,у меня нет вообще не каких шансов ,а js хоть немного похож на as) |
имхо я считаю. лучшая консоль - браузерная консоль (разумеется нормального браузера, НЕ ие). среда разработки - это среда. там вы только правите код. а отлаживайте в браузере..
json - это как и xml. только формат хранения данных (точней передачи, хотя можно и хранить, никто не запрещает) другой. js - клиентский язык php - серверный xml и json - данные в определенном формате. (в нете полно инфы) |
skrudjmakdak Спасибо! ...читать...
|
Цитата:
http://ru.wikipedia.org/wiki/Nodejs Цитата:
http://ru.wikipedia.org/wiki/XML http://ru.wikipedia.org/wiki/JSON Цитата:
http://habrahabr.ru/post/19004/ Цитата:
|
то js, a то nodejs. в данном случае js рассматривается как клиентский язык
json чем вам не понравился. источник на который вы указывайте, прям на первой строчке написано: JSON (англ. JavaScript Object Notation) — текстовый формат обмена данными. я написал тоже самое.. с пхп вы далеко пошли.. также можно опять таки сказать, что js используется на smartTV. там специфика своя. ну и?? можно еще дальше копнуть, а оно ему сейчас надо? |
Цитата:
Цитата:
Цитата:
|
типа ты у нас тут самый умный? к чему все это?
>>вывод конечно замечательный, что ему нужна левая не правильная и не соответствующая реальности. мож сам он будет решать , какая ему информация нужна , а не ты? ну да.. человек только функции осваивает. а ты ему про ноде.. не вижу смысла дальше в открытую на эту тему беседовать. хотел показать себя? показал! |
Цитата:
|
Цитата:
Цитата:
И не нужно дергаться если тебя поправляют, когда ты в чем-то ошибаешься. |
ну да. это все равно что 3-х летним детям рассказывать про секс. или в первом классе рассказывать.. нуу не знаю.. квантовую физику например.. оно им в то время надо? я по началу, когда начинал учить js думал, что js - чисто клиентский. потом узнал что не только. потом узнал, что с помощью него можно в телевизорах (современных) использовать.. ничего не помер. живу, пишу проги дальше.. конфликтная ситуация получилась скорей всего в том, что у нас разные методы обучения. а на js я не плохо пишу, как и вы. и я так же не отрицаю что я чего то не знаю.
это было последнее мое к вам сообщение по этой теме. дальше я на ваши сообщения отвечать не буду. а уже писал по этому поводу. |
Если сказать честно, то знать по началу теорию - более чем полезно.
Много раз сталкивался с тем, что из-за не понимания теории, приходилось менять концепцию написания кода. Что я думаю в тот момент, когда потратил много времени на чтение и на тестовые строчки кода ,прежде чем соберу все в кучу и прежде чем узнаю что это неправильно... В такие моменты в голову лезут разные мысли ,но я ещё не раз не пожалел! Так как ,всегда оказывается ,что в момент постежения узнаешь очень много полезного. Так ,что если в дальнейшем в своих темах я буду читать вот такие дебаты - то я буду только рад этому. И не только мне ведь это полезно. Спасибо всем! |
Часовой пояс GMT +3, время: 05:36. |