Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 05.09.2011, 00:07
Аватар для systemiv
Профессор
Отправить личное сообщение для systemiv Посмотреть профиль Найти все сообщения от systemiv
 
Регистрация: 19.08.2011
Сообщений: 186

b.prototype = new a();
Ответить с цитированием
  #32 (permalink)  
Старый 05.09.2011, 00:31
Аватар для kadabrik
Кандидат Javascript-наук
Отправить личное сообщение для kadabrik Посмотреть профиль Найти все сообщения от kadabrik
 
Регистрация: 10.12.2010
Сообщений: 114

Сообщение от systemiv Посмотреть сообщение
b.prototype = new a();
Не стоит злоупотреблять таким способом наследования. Тут создается совершенно лишний объект "a".
Ответить с цитированием
  #33 (permalink)  
Старый 05.09.2011, 10:02
Интересующийся
Отправить личное сообщение для yambbkru Посмотреть профиль Найти все сообщения от yambbkru
 
Регистрация: 22.08.2011
Сообщений: 28

А зачем там new? а() и b() - это функции, которые возвращают объекты. Это не конструкторы, я так понимаю. Объект создается внутри этих функций. Мне действительно не нужен лишний объект а!!! Я пока вижу только один способ наследования: копирование всех свойств из а() в b(). Но мне это не совсем нравится, поскольку лишнее время затрачивается на это копирование. Хотелось бы через прототип.

Последний раз редактировалось yambbkru, 05.09.2011 в 10:08.
Ответить с цитированием
  #34 (permalink)  
Старый 05.09.2011, 10:59
Аватар для kadabrik
Кандидат Javascript-наук
Отправить личное сообщение для kadabrik Посмотреть профиль Найти все сообщения от kadabrik
 
Регистрация: 10.12.2010
Сообщений: 114

Сообщение от yambbkru Посмотреть сообщение
А можно еще спросить? Вот есть такие 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() имели своим прототипом объект, создаваемый функцией а()?
Если есть серьезное желание изучить javascript то не помешало бы изучить стиль написания кода на нем. Название объектов-прототипов должны начинаться с большой буквы, а все объекты которые строятся от них с маленькой, как и любые переменные.

Сообщение от yambbkru Посмотреть сообщение
А зачем там new? а() и b() - это функции, которые возвращают объекты. Это не конструкторы, я так понимаю. Объект создается внутри этих функций. Мне действительно не нужен лишний объект а!!! Я пока вижу только один способ наследования: копирование всех свойств из а() в b(). Но мне это не совсем нравится, поскольку лишнее время затрачивается на это копирование. Хотелось бы через прототип.
Я уже подсказывал ссылкой на статью в этой ветке один из способов наследования, и оно реализуется через прототип.
Ответить с цитированием
  #35 (permalink)  
Старый 05.09.2011, 11:26
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Хочешь через объект-прототип? Рекомендую самую обычную реализацию:
function B(){
  this.d = 2;
};
B.prototype.c = 1;

var b = new B;
alert( b.c + b.d );
Ответить с цитированием
  #36 (permalink)  
Старый 08.09.2011, 15:06
Интересующийся
Отправить личное сообщение для yambbkru Посмотреть профиль Найти все сообщения от yambbkru
 
Регистрация: 22.08.2011
Сообщений: 28

Спасибо, но мне не нужно реализовывать выдуманную мной задачу для примера другими способами! Мне нужен совет по поводу именно такой моей реализации. Пожалуйста, если кто может, помогите. Нужно те две функции как-то связать через прототип.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с созданием обменного пункта dikabraz Работа 2 23.04.2011 22:17
Помогите чайнику определить местоположение объекта maydep Общие вопросы Javascript 4 02.11.2010 09:17
Пожалуйста, помогите с созданием скрипта! Елизавета Общие вопросы Javascript 10 08.06.2010 13:20
Помогите!!! Из нового окна вызвать функцию ignavr Элементы интерфейса 5 13.12.2009 13:04
помогите с положением свободно позиционируемого объекта Newgen Элементы интерфейса 16 28.07.2009 09:41