Здравствуйте, c-smile, Вы писали:
CS>Я не понимаю зачем нужно было вводить отдельное свойство prototype.
function MyObjectBase(){}
MyObjectBase.prototype = {} // Some prototype;
function MyObject(){}
MyObject.prototype = new MyObjectBase(); // Наследование
MyObject.prototype.NewFunction = function() {} // Some new functionality
Прототипирование это, что каждый объект создаётся по некоторому прототипу, в том числе и наследование реализуется через прототипирование.
Далее динамическое расширение существующего объекта тоже возможно только через прототипы.
Плюс я понять не могу, о чём ты говоришь, когда про функции объекта говоришь:
function MyObject() {/* конструктор объекта */ }
// Прототип объекта
MyObject.prototype =
{
field = 100, // default value
MyFunction: function() { print(this.field); }
}
var myObj1 = new MyObject(); // Cоздаём новый экземпляр объекта
myObj1.field = 1;
var myObj2 = new MyObject(); // Cоздаём новый экземпляр объекта
myObj2.field = 2;
myObj1.MyFunction(); // Печатает 1
myObj2.MyFunction(); // Печатает 2
myObj2.MyFunction = function() { print("Hello World!");} /* Переопределяем функцию экземпляра */
myObj2.MyFunction(); // Печатает Hello, World!
Как такое реализовать без прототипов я даже не представляю. Приведи пример, может я неправильно понимаю ?
CS>Вот я и спрашиваю этим кто-то реально пользуется.
CS>Кто-нибудь может привести фрагмент реального скрипта со словом prototype?
Я в исходники выкладывал EventFramework ...
A>>Отступление: А дебаггер будет?
Мне очень нравиться DomInspector из мозиллы ...
CS>Там не только дебаггер будет. Планируется CSS inspector:
CS>При наведении мыши на элемент можно будет увидеть все его CSS атрибуты с конкретным указанием
CS>из какого definition/css конкретное свойство каскадировалось. И еще много чего на эту тему.
CS>Броузер позиционируется как инструментальный.
Бороться с мозиллой боюсь на этом фронте будет тяжеловато
С Уважением, Andir!