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)

riva 25.06.2013 14:39

обращение из 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>

skrudjmakdak 25.06.2013 14:44

function myswf(a, b)
{
    function calc( a ,b )
    {
        console.log( "nnn" )
        return a + b ;
    }
return calc( a ,b );
}


то что нужно написать
console.log(myswf(4, 5))

danik.js 25.06.2013 14:49

Цитата:

Сообщение от riva
script type="text/javascript" path="myswf.js"></script>

атрибут должен быть не path, а src )

riva 25.06.2013 14:54

сделал так
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>

ошибка :
Цитата:

Uncaught ReferenceError: myswf is not defined

Deff 25.06.2013 14:59

<script type="text/javascript" path="myswf.js"></script>
Цитата:

<script type="text/javascript" src="myswf.js"></script>

riva 25.06.2013 15:01

Спасибо Вам! И у меня ещё вопрос - в js передавать параметры нужно через конструктор? В нем нет static function? Чтобы минуя myswf сразу к calc обратится?

riva 25.06.2013 15:05

И это я тоже понял. Получается ,что метод calc вложенный в конструктор...Просто по началу подумал ,что myswf это обьявление класса ,а тут получается ,что конструктора.

riva 25.06.2013 16:00

Немножко я поспешил. При использовании 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 ) ;
    }
}

skrudjmakdak 25.06.2013 16:50

<script>
//класс
function Obj()
	{
	return {
		method: function(a, b)
			{
			return a + b;
			}
		};
	}

//объявляем экземпляр класса
var obj = Obj();
//обращаемся к методу класса и результат сохраняем в переменную
var result = obj.method(1, 4);
console.log(result);
</script>

danik.js 25.06.2013 17:09

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);


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