Показать сообщение отдельно
  #2 (permalink)  
Старый 31.01.2009, 16:18
Аватар для q--b
Интересующийся
Отправить личное сообщение для q--b Посмотреть профиль Найти все сообщения от q--b
 
Регистрация: 30.01.2009
Сообщений: 28

Сообщение от Langalier Посмотреть сообщение
Добрый день.
Объясните новичку, как должен выглятедь конструктор, который будет создавать объекты наследующие свойства встроенных объектов? Чтобы уже в этом конструкторе была возможность переопределять и добавлять новые свойства.
Например чтобы массив создавался не через new Array, а через new myArray.

Спасибо.
вопрос: если вы новичок - какого вы спрашивается полезли сразу в ооп ?

http://wdh.suncloud.ru/js07.htm

object

конструктор будет выглядеть
Код:
function Circle(radius) {
  this.radius = radius;
}

Circle.prototype.area = function() {
  return Math.PI * this.radius * this.radius;
}

function FullCircle(x, y, radius) {
  this.x = x;
  this.y = y;
  this.radius = radius;
}

FullCircle.prototype = Circle.prototype;

var myCircle = new FullCircle(0, 0, 1);
document.write(myCircle.area());
В языках, основанных на классах, классы объектов образуют иерархию классов, в которой каждый класс может быть потомком какого-либо ранее определенного класса. Потомок класса наследует все его свойства, но может иметь дополнительные собственные свойства или изменять свойства своего предка. При этом набор свойств данного класса зафиксирован в его декларации и не может быть изменен в ходе выполнения программы. Можно сказать, что здесь текущее состояние реализуется экземплярами классов, методы реализуются классами, а наследование — структурой и поведением.

JavaScript поддерживает наследование, основанное на прототипах. С каждым конструктором связан соответствующий прототип объекта, и каждый объект, созданный конструктором, содержит неявную ссылку на этот прототип. Прототип, в свою очередь, может содержать ссылку на свой прототип и так далее. Так образуется цепочка прототипов. Ссылка на свойство объекта — это ссылка на первый прототип в цепочке прототипов объекта, который содержит свойство с данным именем. Иными словами, если данный объект имеет свойство с данным именем, то используется ссылка на это свойство; если нет, то исследуется прототип этого объекта и т. д.

В JavaScript текущее состояние и методы реализуются объектами, а структура и поведение наследуются. Все объекты, которое явно содержат свойство, которое содержит их прототип, разделяют это свойство и его значение. В отличие от языков, основанных на классах, свойства могут динамически добавляться к объектам и динамически удаляться. В частности, конструкторы не обязаны присваивать значения всем или некоторым свойствам создаваемого объекта.
p.s.
вас googl'ом пользоваться не учили ?

Последний раз редактировалось q--b, 31.01.2009 в 16:25.
Ответить с цитированием