![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jul 2003
Адрес: Петербург
Сообщений: 432
|
Love = function (){
};
Love.name="love";
trace (Love.prototype.constructor.name);
//Love.prototype made by Love
Цитата:
Последний раз редактировалось dm_nev; 09.12.2003 в 10:57. |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
грубо говоря - любой объект создается классом Object
по умолчанию, почти все классы являются дочерними от Object... а prototype твоего класса - это объект, содержащий то что нужно всем инстансам этого класса то есть прототип - это всего лишь контейнер, из которого берутся общие свойства и методы... при этом сам этот контейнер создан классом Object кстати - есть такое понятие - бесконечная цепочка наследования :) если сделать так, чтобы прототипом класса был объект этого же класса, и обратиться к любому его свойству - мы получим бесконечную цепочку, на 256 звене которой компилятор склеит ласты :) Последний раз редактировалось Nox Noctis; 09.12.2003 в 12:58. |
|
|||||
|
Регистрация: Jul 2003
Адрес: Петербург
Сообщений: 432
|
Цитата:
Ну вообще-то все понятно, может я мало подумал перед тем как задать этот вопрос... спасибо ![]() |
|
|||||
|
Регистрация: Jul 2003
Адрес: Петербург
Сообщений: 432
|
Цитата:
|
|
|||||
|
wanted
Регистрация: Sep 2002
Сообщений: 1,737
|
Цитата:
пример: Love = function (a){
trace (a);
};
b=Love.prototype.constructor;
b.apply(null, ["constructor called"]);
Love.name="love"; trace (Love.prototype.constructor.name); выдаст сам знаешь что ![]()
__________________
вот тебе, революционный единоличник! вот тебе кулачество! вот тебе Союзкиножурнал! |
|
|||||
|
Регистрация: Jul 2003
Адрес: Петербург
Сообщений: 432
|
Угу, спасибо, Сергей, дог.прототип - это ссылка на дог.
Все верно? |
|
|||||
|
Регистрация: Feb 2001
Сообщений: 1,893
|
Прототипы уже не в моде
![]() JScript7 http://msdn.microsoft.com/library/de...ownclasses.asp JavaScript2 http://www.mozilla.org/js/language/es4/index.html http://www.mozilla.org/js/language/j...e/classes.html или к примеру ![]() http://ru3.php.net/manual/ru/ref.classobj.php Так, что давайте в другой раздел с ActionScript 2.0 ![]() |
|
|||||
|
Регистрация: Jul 2003
Адрес: Петербург
Сообщений: 432
|
Оу! Спасибо за ссылки llllllllll. Но все по порядку. Я, пожалуй, суперАнтиМодный, но хочу разобраться как работают прототипы.
|
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
все можно наглядно увидеть прямо в листе переменных...
воспользуемся всем уже известной фишкой: deprotect = function (o) {
ASSetPropFlags(o, null, 8, 7);
if (typeof (o) == "function") {
ASSetPropFlags(o.prototype, null, 8, 7);
} else {
ASSetPropFlags(o.__proto__, null, 8, 7);
}
};
//
cavat = function () {
};
cavat.prototype.test = "property of cavat class !";
//
gutta = new cavat();
//
deprotect(Object);
deprotect(gutta);
//
trace(cavat.prototype.__proto__ == Object.prototype);
trace(cavat.__proto__.__proto__ == Object.prototype);
Variable _level0.cavat = [function] {
prototype:[object #3, class 'Object'] {
constructor:[function],
__proto__:[object #4] {
constructor:[function 'Object'] {
prototype:[object #4]
},
watch:[function],
unwatch:[function],
addProperty:[function],
valueOf:[function],
toString:[function],
hasOwnProperty:[function],
isPrototypeOf:[function],
isPropertyEnumerable:[function],
toLocaleString:[function 'toLocaleString']
},
test:"property of cavat class !"
}
}
Variable _level0.gutta = [object #15] {
__proto__:[object #3, class 'Object'],
constructor:[function],
__constructor__:[function]
}
в общем виде наследование можно организовывать так: |
|
|||||
|
Banned
Регистрация: Nov 2003
Сообщений: 425
|
Цитата:
если не ощибаюсь... Последний раз редактировалось ultraflasher; 10.12.2003 в 14:06. |
![]() |
Часовой пояс GMT +4, время: 18:55. |
|
|
« Предыдущая тема | Следующая тема » |
|
|