Я не уверен, как это объяснить, и это ДЕЙСТВИТЕЛЬНО беспокоит меня. Это испортит мой код. Во всяком случае, здесь в основном то, что есть. Предположим, у меня есть переменная, которая держит на структуру с некоторыми значениями, скажем, настройки по умолчанию:JavaScript Переменные, записывающие другие переменные без инструкции?
var DefaultValues = {
username: "cakeisajoke",
this: "is some",
default: {
data: 483
},
lives: 3,
playerX: 0,
playerY: 0
}
В моем коде, я использую эту переменную как «шаблон», так что я могу сбросить свою игру проще. Например:
var GameValues = DefaultValues;
Хорошо, так что имеет смысл до сих пор. Теперь, скажем, игрок теряет жизнь:
GameValues.lives--;
Либо игрок перемещает некоторые из них:
GameValues.playerX += 20;
GameValues.playerY -= 10;
Итак, теперь мой GameValues меняется, и я поставил игру на это. Но тогда игрок терпит неудачу и получает игру. Если он хочет играть снова, все, что нужно сделать, это сбросить переменную GameValues к значениям по умолчанию:
GameValues = DefaultValues;
И, насколько я обеспокоен, это надо просто набор GameValues к DefaultValues, верно? Но это не так. По какой-то причине GameValues и DefaultValues теперь имеют одинаковые значения, если они не должны. Например, DefaultValues теперь 0, вместо того, что было изначально, 1.
Почему это делается? Я посмотрел и снова посмотрел, и я НЕ устанавливаю DefaultValues в любом месте кода, кроме этой начальной структуры.
«Я использовал это и по умолчанию в качестве примера, я знаю, что я не могу на самом деле использовать их, так как они защищены»
Я бы *** сильно *** рекомендую не использовать 'this' как имя свойства. –