Абсолютно не понятно, зачем нужны эти строчки:
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, время: 12:39. |