Javascript модульный большие объекты - PullRequest
1 голос
/ 25 ноября 2010

У меня есть объект, определенный как функция, и в нем есть много методов и свойств, каковы некоторые способы его модульности, чтобы сделать его более управляемым?Можно поместить функции внутри объекта во внешние файлы?

Редактировать:

Кто-то упоминал в одном ответе, что включает другие файлы, но это будет иметь непристойную HTML-страницу, т.е. IE:

<script type="text/javascript" src="script1.js"></script>
<script type="text/javascript" src="script2.js"></script>
<script type="text/javascript" src="script3.js"></script>
....
<script type="text/javascript" src="script76.js"></script>

Есть ли способ структурировать код, поэтому требуется только одна ссылка на файл javascript?

Ответы [ 4 ]

3 голосов
/ 25 ноября 2010
var myobj = {
  somefunc: function() { /* function code */ },
  prop: "some string",
  // etc.
};

и в другом js-файле, включенном после кода выше

myobj.anotherfunc = function () { /* function code */ };
1 голос
/ 25 ноября 2010

Вы можете проверить RequireJS .Это позволяет вам определять функции, модули, зависимости и загружать внешние файлы Javascript из Javascript (возможно, асинхронно).

0 голосов
/ 25 ноября 2010

Вы можете попробовать это:
http://www.cryer.co.uk/resources/javascript/script17_include_js_from_js.htm

... но лучше всего включать файлы, которые вы хотите, на главную html-страницу

0 голосов
/ 25 ноября 2010

вы можете использовать серверный скрипт для обработки ваших javascripts, с помощью jsmin вы можете даже ускорить процесс (если он кешируется).

Я думаю о сценарии, который выглядит примерно так: scripts.php

<?php 

$files = array('script1.js', 'script2.js');
$output = '';

foreach($files as $file){
    $output .= file_get_contents($file);
}

header("Content-type: application/x-javascript");
echo $output;

?>

your html
<script type="text/javascript" src="/script.php"></script>

Вы также можете просто включить все js-файлы в папку, просто сгенерировать массив с помощью сканирования папок или чего-то еще, я думаю, вы поняли!

привет Nexum

...