обращение из 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, время: 01:57. |