Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   file.js in file.js (https://javascript.ru/forum/library-toolkit-framework/24193-file-js-file-js.html)

stweet 21.12.2011 03:33

file.js in file.js
 
Час добрый.
Я в данном стандарте впервые.
Так как всё время пишу соблюдая ооп есть привычка импортов классов.
Чем являются в javascript классы - объекты уяснил. Но вот ответа на вопрос : 'Как импортировать классы из файлов?' не нашёл. Т.е. есть 3 файла:

Чего добиваюсь я:
// file1.js need object as class
function abstract ( )
{
    this.oneMethod = function ( )
    {
        // ...
        return 'hello';
    }
}



// file2.js creat new object as class.
window.onLoad = function ( )
{
    this.needObject = new abstract ( ) ;
    
    document.write ( needObject.oneMethod ( ) ) ;
}



// file.php generate index.html
<script src = 'file2.js'></script>


заранее благодарен.

trikadin 21.12.2011 03:49

Сохранять класс в отдельный файл, получать файл аяксом.

stweet 21.12.2011 04:10

Блин, каким аяксом?!?!?!!!...

Вероятно мой вопрос не понятен!
У меня еть 2 файла ( javascript-а ) ; Я хочу в одном файле использовать методы другова!

первый находится в папке (пакете) js_one
второй в папке (пакете) js_two

в html добавляю только один из них который должен использовать методы второго. т.е. что бы не катать портянку кода я хочу разбить его на классы ( в вашем же случае это объекты ).

FINoM 21.12.2011 05:01

Подключить оба скрипта, не?

trikadin 21.12.2011 07:50

Цитата:

Сообщение от FINoM
Подключить оба скрипта, не?

:) Я подумал о динамическом подключении...

B@rmaley.e><e 21.12.2011 13:55

Вы можете использовать подключить на страницу оба, а потом спокойно использовать во втором функции / объекты первого.

Либо использовать какие-нибудь библиотеки для модульности.

devote 21.12.2011 15:11

видимо он хочет как в PHP подключение по требованию, в PHP есть функция __autoload() которая вызывается ядром PHP в случае если класс небыл обнаружен в памяти загруженным, тем самым можно динамично подключать класс по необходимости а не инклюдить его всегда. В JavaScript подобный способ сомневаюсь что можно реализовать без извращений, тоесть создавать экземпляр класса нужно будет не напрямую через new а через специализированную функцию, которая при необходимости подгрузит нужный класс, но тут вопрос встает с асинхронностью, что загрузка класса приведет к ступору выполнения кода, что не есть гуд конечно.

stweet 23.12.2011 21:01

Да не, просто не знакомство с данным стандартом. Думал что можно в javascripte использовать "import need.object;"
Разобрался. Т.е. импорт классов/объектов/file.js только через html документ.

Пришёл к такому варианту:
var _allScript = ['blocks/TopBlock.js'/*, 'blocks/LeftBlock.js'*/] ;



( function ( ) 
{
	addScript ( ) ;
} )();



function addScript ( )
{
	for ( var i = 0 ; i < _allScript.length ; i ++ )
		addElement('<script type="text/javascript" src="'
			+ _allScript[i] + '"></script>');
}



function addElement ( element )
{
	document.write ( element ) ;
}


При использовании одного файла всё работает, если же массив дополняю очередным файлом первый перестаёт работать, а в странице показывает что и тот и тот скрипт присутствует.

Помогите понять как импортировать в html javascript-ы не вписывая их индивидуально.
Заранее благодарен.

stweet 24.12.2011 19:03

Тему можно закрывать. Разобрался, спасибо участникам за помощь!


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