Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 03.12.2014, 18:11
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

kostyanet,
Разница в экономии памяти. У вас функция будет создана для каждого экземпляра, уу меня у каждого экземпляра будет ссылка на функцию из прототипа.

Эх, долго писал
Ответить с цитированием
  #12 (permalink)  
Старый 03.12.2014, 18:14
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от Siend
у меня сейчас можно сказать что существует уже 1 палитра с кучей переменных и функций их обработки, а хочу я чтобы для каждого canvas своя палитра создавалась, со своими переменными и функциями.
var vasya = new SomeConstructor('vasya');
vasya.getName();
// vasya

но лично мне эта хрень с this'ами не нравится. Это голимые публичные проперти. Смысла в getName() ровно 0, ибо vasya.name дает то же самое. Ну, понятно что в методе может быть что-то посложнее, но все равно нормальный класс должен иметь внутренности и интерфейс.
Ответить с цитированием
  #13 (permalink)  
Старый 03.12.2014, 18:16
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

tsigel,

Ясно, спасибо.
Ответить с цитированием
  #14 (permalink)  
Старый 03.12.2014, 18:16
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Сообщение от kostyanet
Это голимые публичные проперти.
Никто не мешает прятать приватные в замыкания.
Ответить с цитированием
  #15 (permalink)  
Старый 03.12.2014, 18:18
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Сообщение от kostyanet
Смысла в getName() ровно 0, ибо vasya.name дает то же самое.
a=1

Смысла в пременной a нет, ибо 1 дает то же самое
Ответить с цитированием
  #16 (permalink)  
Старый 03.12.2014, 18:18
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Сообщение от kostyanet
Это голимые публичные проперти.
Никто не мешает писать приватные методы начиная с "_" и писать JSDoc, тогда IDE сама будет показывать что можно трогать а что нет. В данном случае я писал это просто как пример.
Ответить с цитированием
  #17 (permalink)  
Старый 03.12.2014, 18:19
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Теперь такой вопрос, я тоже нуждаюсь. Цитата:

SomeConstructor.prototype.getName = function () {
  return this.name;
};
SomeConstructor.prototype.addAge = function () {
  return this.age++;
};
SomeConstructor.prototype.addFriends = function (friend) {
  return this.friends.push(friend);
};


конец цитаты. Это все можно собрать в один прототип который типа класс, и, затем от него все эти методы наследовать через какой-то шланг в конкретном объекте?
Ответить с цитированием
  #18 (permalink)  
Старый 03.12.2014, 18:22
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Сообщение от kostyanet
Это все можно собрать в один прототип который типа класс, и, затем от него все эти методы наследовать через какой-то шланг в конкретном объекте?
они и так наследуются. Твоего кода достаточно, больше них*я н надо для этого
Или ты хочешь суперкласс создать?
Ответить с цитированием
  #19 (permalink)  
Старый 03.12.2014, 18:25
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от jsnb
Никто не мешает прятать приватные в замыкания.
Как? Чтобы у методов был к ним доступ.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #20 (permalink)  
Старый 03.12.2014, 18:25
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

kostyanet,
Да

var SomeConstructor = function(name, age) {
  this.name = name;
  this.age = age;
};
SomeConstructor.prototype.getName = function () {
  return this.name;
};
SomeConstructor.prototype.addAge = function () {
  return this.age++;
};

var SomeChild = function () {
  SomeConstructor.apply(this,arguments)
};
SomeChild.prototype = Object.create(SomeConstructor.prototype);
SomeChild.constructor = SomeChild;

SomeChild.prototype.childMethod = function () {
  return true;
}

var child = new SomeChild("child", 20);

alert(JSON.stringify(child, "", 4));
alert(child.childMethod());

Последний раз редактировалось tsigel, 03.12.2014 в 18:32.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать кнопку, для проигрывания музыки! Как? Foleyer Общие вопросы Javascript 13 11.04.2013 16:43
Подскажите как создать пиксельную сетку sovereignsouls Элементы интерфейса 5 01.03.2013 10:37
Как создать задержку перед .html() Could jQuery 1 17.07.2011 13:42
Как создать Дата,время,открытие сайта Антон Internet Explorer 1 11.12.2008 22:44
как создать елемент с вложеными елементами scuter Events/DOM/Window 11 14.05.2008 16:15