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:44. |