Абсолютно не понятно, зачем нужны эти строчки:
this.$firstButton = new Object(); this.$secondButton = new Object();??? |
Цитата:
|
Спасибо, kadabrik! Так стало понятней. А можно еще попутный вопрос? Я прочла уже несколько раз в учебнике и на этом сайте о наследовании в javascript. Но остались не понятые моменты. Допустим есть класс
function Obj1(c) { this.a = c; this.b = function() {alert(this.a);} this.b(); } При запуске var myObj1 = new Obj1("1"); показывает сообщение 1. Теперь я хочу создать новый класс function Obj2(c) { this.d = c + [B]this.a[/B]; [B]this.b();[/B] } где this.a и this.b() - это свойство и метод объекта Obj1. Как мне связать эти эти объекты? Так? Obj2.prototype = new Obj1("1") Но тогда попутно создается и объект Obj1. Я читала про обходные пути, что мол создается объект, а функция-конструктор пустая или копируют свойства из первого объекта во второй... А можно так связать объекты, что бы не создавать первый объект, а только взять его методы? Не скопировать, а как то сослаться не создавая его? Тем более строчка с прототипом должна быть написана вне обеих функций, я так поняла. Но было бы гораздо удобнее связать функции в теле второй функции Obj2. Так можно сделать? И еще вопрос. Что значит строчка О1 = Obj1 ? Как в этом случае ведут себя оба класса? Если в правый добавить свойства что будет? А если в левый? И что сделалось с прототипом? |
yambbkru, если речь идет о наследовании, то в js есть несколько способов его реализовать. Лично мне больше всего нравится этот метод. Для наследования именно свойств, а не методов лучше подходит вызов конструктора родителя в конструкторе потомка: MyClass.superclass.constructor.call(this). После этого все переменные объявленные в конструкторе родителя будут и у потомка.
|
Цитата:
function Obj1(c) { this.a = c; this.b = function() { alert(this.a); } this.b(); } var myObj1 = new Obj1("1"); function Obj2(c) { debugger this.d = c + this.a; this.b(); } *!* Obj2.prototype = myObj1; */!* // создадим экземпляр второго объекта, чтобы проверить работоспособность new Obj2('c'); выдает два алерта, в которых 1. Цитата:
|
melky, как же всетаки текст на аватарке контрастирует с началом предыдущего сообщения :)
|
Я увидел здесь разговор о var..Скажите пожайлуста, существет ли АНИМИРОВАНЫЙ АЛЕРТ и АНИМИРОВАНЫЙ var наподобие счетчика ? .Алерт выводит только стационарное значение var.
Причина вопроса такая_ меняется ширина картинки,ее анимированная ширина динамически передается другому объекту для его css.Как быть? |
Цитата:
|
Цитата:
|
А можно еще спросить? Вот есть такие 2 функции:
function a() { var t = { c : "1" } return t } function b() { var t = { d : "2" } return t } var A = a(); var B = b(); alert(A.c + B.d) В результате выдает сообщение "12". Как мне сделать, что бы все объекты, создаваемые функцией b() имели своим прототипом объект, создаваемый функцией а()? |
Часовой пояс GMT +3, время: 14:50. |