JS классы - как объединить функции в класс
И снова сдрасте)
Помогите пожалуйста с такой проблемой. Я попробую вкратце описать все как есть. Я построил сайт таким образом - после того как браузер получает весь html код, он вдобавок редактируется js-ом. Есть главный файл main.js, в котором находятся все функции (классы не использовал вообще ни в одном куске кода, кроме как jQuery). После него подключается следующий файл, но в зависимости от страницы он может быть разным, т. е. если пользователь зашел на страницу www.site.com/user, то подключится user.js, если на www.site.com/messages - messages.js. В main.js есть такое: $(document).ready(function(){ size(); funcs(); ... }) ну и дальше в каждом файле user.js, messages.js и во всех остальных, которые подключаются по той же логике есть свои ф-ции size() и funcs() и еще не мало. Я хочу сделать один файл supermain.js, в котором будут все функции из всех файлов и что бы принцип работы был таков: $(document).ready(function(){ if(param=='user')obj=new User(); else if(param=='messages')obj=new Messages() obj.size(); obj.funcs(); ... }) что б классах User и Messages были все функции из файлов user.js, messages.js соответственно. Загуглил что делать в таких случаях, из того что я прочитал я даже и не понял что вообще происходит с классами в js. Подскажите как легче и разумней будет. Для примера попробую описать, как построен файл user.js: function size(){ alert('a') } function funcs(){ helloWord('Hello Word!') } function helloWord(p){ alert(p) } Заранее спасибо за ответы |
Забавно - вы реализовали полиморфизм, одну из ключевых концепций ООП, без объектно-ориентированных средств))
Почитайте тут. Всё хорошо изложено. Если не разберётесь - спрашивайте, что непонятно. |
в общем попробовал вот так:
function test(){ this.z=function(h){ alert(h); ha(); m(); } this.ha=function(){ alert('s') } } var z=new test() z.z('z') function m(){ alert('m') } вроде как че-то да получилось. Теперь появился такой вопрос - я часто в тегах делаю так: onclick="ha()", но теперь ha() внутри test, каким образом можно вызвать ha() при onclick? и с точки зрения стандартов языка тот кусок кода, который я написал вверху он соответствует (боюсь как бы не получилось, что в одних браузерах работать будет, в других нет)? |
onclick="z.ha()" Нормально будет работать) Во всех одинаково. |
Часовой пояс GMT +3, время: 10:06. |