Я пишу небольшую платформу JavaScript JavaScript и часто использую свойства объектов, например
this.depth = this.y;
Но эти this
'es довольно раздражают @_ @. Есть ли способ написать просто...
depth = y;
... не влияет на глобальный объект?
Мои экземпляры создаются с помощью двух функций factory, и они составляют ограниченный список предопределенных переменных, поэтому все они имеют depth
, y
и т.д. Функции применяются к экземплярам методом .apply()
хотя все это может быть изменено.
Причина, по которой мне нужно опустить ключевое слово this
, заключается в том, что структура создана не только для меня, но и для других людей. Мне не нужно удалять this
в самой структуре, но ключевое слово this
собирает много времени при кодировании приложений на основе этой библиотеки. Единственное решение, которое я знаю до сих пор, заключается в создании переменных 'private', но это создает некоторые неудобства для людей, которые раньше не работали с JavaScript, а манипулирование obj1 из obj2 вызывает много анонимных функций с .apply
- еще больше ада. Итак, как я вижу, в JavaScript нет панацеи.
Конструкторы:
/*...*/
'Copy' : function (type) {
var obj = {
'x':0,
'y':0,
'xprev':0,
'yprev':0,
/*...*/
};
return obj;
},
'make' : function (type,x,y) {
obj = ct.types.Copy(type);
obj.x = obj.xprev = obj.xstart = x;
obj.y = obj.yprev = obj.ystart = y;
/*...*/
ct.stack.push(obj);
}
/*...*/