Цитата:
Сообщение от Яски
|
JavaScript такой же псевдо-ООП, как и AS1, нет разницы. Ещё раз говорю, что язык вам позволяет реализовывать ООП, куцое, правда. Но у него нет средств для обеспечения той же приватности или полиморфизма, эти вещи разработчик просто в голове держит и все.
Цитата:
Сообщение от Яски
Да, пожалуйста:
 Код:
function IMyClass(){
this.getRotation = function(){
return 'abstract method'
};
};
function MyClass() {
this.__proto__ = IMyClass;
this.angle = 0;
var calculateValue = function () {
this.angle = 2*Math.PI*Math.random();
};
this.getRotation = function() {
calculateValue.call(this);
return this.angle/Math.PI*180;
};
};
function AnotherMyClass() {
this.__proto__ = MyClass;
this.getRotation = function() {
var rotation = this.__proto__.getRotation();
return rotation/2;
};
this.getRadians = function() {
return this.angle/2;
}
};
var iMyClass = new IMyClass();
var myClass = new myClass();
var aMyClass = new AnotherMyClass();
trace(iMyClass.calculateValue()) // "undefined"
trace(iMyClass.getRadians()) // "undefined"
trace(iMyClass.getRotation()) // "abstract method"
trace(iMyClass.angle) // "undefined"
trace(myClass.calculateValue()) // "undefined"
trace(myClass.getRadians()) // "undefined"
trace(myClass.getRotation()) // "152.942357249558"
trace(myClass.angle) // "2.66934769976621"
trace(aMyClass.calculateValue()) // "undefined"
trace(aMyClass.getRadians()) // "1.3346738498831"
trace(aMyClass.getRotation()) // "102.746495101601"
trace(aMyClass.angle) // "3.58652926881432"
Даже немного компактнее получилось.
|
Мой трейс:
Цитата:
|
Сообщение от Flash CS3
undefined
undefined
abstract method
undefined
undefined
undefined
undefined
undefined
undefined
NaN
NaN
undefined
|
Не работает, вы не находите?
Цитата:
Сообщение от Яски
Как я уже говорил АС1 и JavaScript являются прототипными ООП. Что свойственно для языков программирования без жесткой типизации, в которых нельзя ввести определение класса.
|
Если рассматривать понятие ООП как более абстрактное, программирование с использованием понятия объектов, то тогда большинство языков объектно-ориентированные.
Цитата:
Сообщение от Яски
Если ,etcs, хочет называть все прототипные языки программирования "неистенными" это его право, но только вместе с приставкой ООП.
|
Я уже говорил, что я согласен на формулировку, что AS1 — ООП язык, но только с приставкой «псевдо». Class-based языки — ООП языки без приставок.
p.S. В моем нике всего три буквы и два подчеркивания, но почему в нём постоянно делают ошибки? То буквы местами перепутают, то «c» с «s», то одно подчеркивания вместо двух (хотя подчеркивания можно и опустить совсем).