Javascript.RU

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

Реализация наследования
Здравствуйте подскажите как реализуются статические методы в фукциональном, прототипном наследовании и с помощью класов в ES6? и чем отличается статический от приватного методы?
к примеру у меня есть код:
function Animal(name, age, gender, height, weight) {
	let height = height;
	let weight = weight;
	this.name = name;
	this.age = age;
	this.gender = gender;
	this.run = function(){
		console.log('I\'m runing');
	}

	this.getName = function(){
		return this.name;
	};
	this.setName = function(newName){
		this.name = newName;
	}
	this.getAge = function(){
		return this.age;
	};
	this.setAge = function(newAge){
		this.age = newAge;
	}
	function greet(){
		console.log('Hello! I\'m animal');
	}
}

function Mammal (name, age, gender, kind){
	Animal.call(this);
	this.kind = kind;
	this.eat = function(){
		console.log('I\'m runing');
	}
	function greet(){
		console.log(`Hello! I'm mammal. My name ${name}, age ${age}, gender ${gender}, kind ${kind}`);
	}
}


нужно сделать метод greet статичным у Animal и Mammal

Последний раз редактировалось Anna_Medvid, 18.10.2017 в 22:38.
Ответить с цитированием
  #2 (permalink)  
Старый 19.10.2017, 00:03
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

class Animal {
	constructor(name, age, gender, height, weight) {
		this.name = name;
		this.age = age;
		this.gender = gender;
	}
	
	run() {
		console.log('I\'m runing');
	}
	getName() {
		return this.name;
	}
	setName(newName) {
		this.name = newName;
	}
	getAge() {
		return this.age;
	}
	setAge(newAge) {
		this.age = newAge;
	}
	
	static greet() {
		console.log('Hello! I\'m animal');
	}
}

class Mammal extends Animal {
	constructor(name, age, gender, kind) {
		super();

		this.kind = kind;

		//Mammal.greet(name, age, gender, kind);
	}
	
	eat() {
		console.log('I\'m runing');
	}
	
	static greet(name, age, gender, kind) {
		console.log(`Hello! I'm mammal. My name ${name}, age ${age}, gender ${gender}, kind ${kind}`);
	}
}
Ответить с цитированием
  #3 (permalink)  
Старый 19.10.2017, 11:31
Интересующийся
Отправить личное сообщение для Anna_Medvid Посмотреть профиль Найти все сообщения от Anna_Medvid
 
Регистрация: 07.01.2017
Сообщений: 22

Это ES6, а как реализовать статический метод в функциональном наследовании, и в прототипном наследовании
Ответить с цитированием
  #4 (permalink)  
Старый 19.10.2017, 22:49
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Anna_Medvid,

Animal.myMethod = function() {

};
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объектно-ориентированная реализация связи dom-элемента и javascript-объекта scv Events/DOM/Window 2 22.03.2017 14:27
Реализация пространства имен SunYang Общие вопросы Javascript 0 09.12.2015 10:38
Реализация игрового поля для игры "Точки" last-art Events/DOM/Window 7 22.04.2012 03:18
Реализация функции include BreatheInTheVoid Общие вопросы Javascript 4 23.09.2010 14:23
Реализация "Удалить"..."Восстановить" как вконтакте.ру Darooma2 AJAX и COMET 10 26.05.2010 13:41