Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.12.2013, 22:08
Интересующийся
Отправить личное сообщение для ShuggyBumblebee Посмотреть профиль Найти все сообщения от ShuggyBumblebee
 
Регистрация: 24.11.2013
Сообщений: 20

ООП наследование. Как получить доступ к методам родителя?
У меня уже мозг на бикрень от этого JS).
Как получить доступ к методам родителя?
function MotionVector(){
				this.e,
				this.int    = 30,
				this.startX = 0, 
				this.startY = 0,
				this.coordX = [0, this.int],
				this.coordY = [0, this.int],
				this.flag 	= true;
		}
		
		MotionVector.prototype = {
				constructor		: MotionVector,	
				getVectorByX 	: function(){
						return this.coordX;	
				},
				getVectorByY 	: function(){
						return this.coordY;	
				},
				computation		: function(event){
						this.e = event;
						if(this.flag){	
								this.flag = false;
								this.startX = this.e.pageX; 
								this.startY = this.e.pageY;
								setTimeout(this.endControl.bind(this), this.int);
						}
				},
				endControl	    : function(){
						this.coordX[0] = this.e.pageX - this.startX;
						this.coordY[0] = this.e.pageY - this.startY;
						this.flag = true;
				}
		}

наследник
function MotionVectorX() {
        MotionVector.call(this);
    }

    MotionVectorX.prototype = new MotionVector();
    MotionVectorX.prototype = {
        endControl: function () {
            this.coordX[0] = this.e.pageX - this.startX;
            this.flag = true;
        }

    }
    MotionVectorX.superclass.computation.call(this, event);
    MotionVectorX.superclass.getVectorByX.call(this);

метод endControl я переписал, но мне нужны еще не переписанные методы родителя(computation, getVectorByX), как их достать?
Ответить с цитированием
  #2 (permalink)  
Старый 03.12.2013, 22:23
Профессор
Отправить личное сообщение для BallsShaped Посмотреть профиль Найти все сообщения от BallsShaped
 
Регистрация: 14.09.2012
Сообщений: 162

Во-первых, это:
MotionVectorX.prototype = new MotionVector();
MotionVectorX.prototype = {

неправильно.
Надо так:
MotionVectorX.prototype = Object.create(MotionVector.prototype);
MotionVectorX.prototype.endControl = function () {
    this.coordX[0] = this.e.pageX - this.startX;
    this.flag = true;
};

Во-вторых, просто укажи ручками свойство superclass:
MotionVectorX.superclass = MotionVector.prototype;

Последний раз редактировалось BallsShaped, 03.12.2013 в 22:26.
Ответить с цитированием
  #3 (permalink)  
Старый 03.12.2013, 22:36
Интересующийся
Отправить личное сообщение для ShuggyBumblebee Посмотреть профиль Найти все сообщения от ShuggyBumblebee
 
Регистрация: 24.11.2013
Сообщений: 20

о отлично, работает))) спасибо
Ответить с цитированием
  #4 (permalink)  
Старый 03.12.2013, 23:02
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

не забудь call(this) и apply(this) делать для методов, а не просто вызывать
Ответить с цитированием
  #5 (permalink)  
Старый 04.12.2013, 00:27
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от BallsShaped
Надо так:
Тогда уж так:

MotionVectorX.prototype = Object.create(MotionVector.prototype, {
    constructor: {value: MotionVectorX}
});
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 04.12.2013, 00:44
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

а вот так слабо)?


<script src="//mychamber.ru/build/ui.js"></script>


<div controller="FRP">
  <button click="a++">add</button>
  {a} + {b} = {c}
</div>


<script>
  function FRP() {
    a = 1
    b = 2
    c = (a + b)
  }
</script>

Последний раз редактировалось Maxmaxmaximus3, 04.12.2013 в 00:48.
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как получить доступ к найденному элементу? Vampir3 Общие вопросы Javascript 27 11.08.2012 13:53
Получить доступ к тегам в IFrame vamfirius Events/DOM/Window 6 28.04.2011 00:24
iframe и как получить доступ к его содержимому syegorius jQuery 13 14.04.2011 22:05
Как получить raw data с image? lyapharov Общие вопросы Javascript 2 07.04.2011 00:20
Как получить список пользовательских функций объекта window? Маэстро Events/DOM/Window 13 03.07.2010 13:20