Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 03.12.2014, 18:28
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

крутой, вы в прошлой моей теме все засрали, я бы хотел вас попросить не вмешиваться, а то я вас могу травмировать, у меня еще с юзенета могучий опыт имеется.

Там я задавал именно такой вопрос, про эту самую память. Не скажу что она меня сильно волнует, ибо и без скриптов FF хавает изрядно, подумаешь еще пару мегов, а Chrome вообще может полтора гига засосать своим leakage. Но тем не менее, вот усеченный код, структура вся сохранена

var FormField=function(elem){
	var	type=		elem.type,
		def=		elem.value,
		rules={};

	return {
		validate:function() {
			value=elem.value.trim();
			if(type in rules)
				rules[type]();
			else
				rules.text();
		}
	};
};

// load

var some[]=FormField[elem];


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

Сообщение от danik.js
Как? Чтобы у методов был к ним доступ.
danik.js,
Например так:

var Class = (function () {

   var private
   var Class = function () {}

   Class.prototype.someMethod = function() {
      private ...
   };

   ...

   return Class;
})();

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

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

Сообщение от kostyanet
Я понимаю у каждого будет своя копия (инстансь) объекта который возвращает функция, а все ее кишки тоже скопируются?
Да
Ответить с цитированием
  #25 (permalink)  
Старый 03.12.2014, 18:32
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

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

tsigel,

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

Сообщение от nerv_
потому, что может пригодиться function.name (имя класса)
а можно пример, когда это может пригодится?
Ответить с цитированием
  #28 (permalink)  
Старый 03.12.2014, 18:38
Профессор
Отправить личное сообщение для Siend Посмотреть профиль Найти все сообщения от Siend
 
Регистрация: 04.02.2012
Сообщений: 196

Развели тут срач в моей теме... ><

Вообщем, кажется, я наконец-то понял, поправьте меня, если я туплю.

1. Я создаю конструктор, который должен проинициализировать все мои переменные используемые в данном canvas. Т.е. допустим я использую:
...
var x0Multi
    var y0Multi
    var x1Multi
    var y1Multi
    var xMouse
    var yMouse
    var TEMP = ""
    var ActionState = "single"
    var Creating = "none"
    var InFocus = { H: [], S: [], CvC: [] }
    var DATA = []
    var conn = []
    var vers = []
    var edges = []
    var cnEdg = 0
    var cnCon = 0
    var cnVer = 0
    var idV = 0
    var idE = 0

...
тогда я получу что-то вроде:
var SomeConstructor = function() {
    this.x0Multi
    this.y0Multi
    this.x1Multi
    this.y1Multi
    this.xMouse
    this.yMouse
    this.TEMP = ""
    this.ActionState = "single"
    this.Creating = "none"
    this.InFocus = { H: [], S: [], CvC: [] }
    this.DATA = []
    this.conn = []
    this.vers = []
    this.edges = []
    this.cnEdg = 0
    this.cnCon = 0
    this.cnVer = 0
    this.idV = 0
    this.idE = 0
};


2. Все функции я должен переписать в ввиде расширения прототипа. Т.е.:

было
...
    function drawMultiSelect() {
        ctx.beginPath();
        ctx.rect(x0Multi, y0Multi, x1Multi - x0Multi, y1Multi - y0Multi);
        console.log(x0Multi + " " + y0Multi + " " + xMouse + " " + yMouse)
        ctx.strokeStyle = "rgba(0,0,255,0.5)";
        ctx.fillStyle = "rgba(0,0,255,0.3)";
        ctx.fill();
        ctx.stroke();
    }
...


стало:
SomeConstructor.prototype.drawMultiSelect() {
        this.ctx.beginPath();
        this.ctx.rect(x0Multi, y0Multi, x1Multi - x0Multi, y1Multi - y0Multi);
        this.ctx.strokeStyle = "rgba(0,0,255,0.5)";
        this.ctx.fillStyle = "rgba(0,0,255,0.3)";
        this.ctx.fill();
        this.ctx.stroke();
    }


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

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

Сообщение от Siend
как к ctx или как к this.ctx?
Как this, естественно. Но Вы по-прежнему не понимаете, как это работает, иначе этого вопроса бы не возникло просто.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать кнопку, для проигрывания музыки! Как? 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