Есть ли способ остановить экземпляры функции от наследования свойства друг от друга? Я читал статью о объекте прототипа Javascripts и читал следующее.Вопрос о наследовании и прототипе Javascript и прототипа
«Важно отметить, что прототип« живой ». Объекты передаются по ссылке в JavaScript, поэтому прототип не копируется с каждым экземпляром нового объекта. Что это означает на практике? Это означает, что вы можете модифицируйте прототип в любое время, и все объекты (даже созданные до модификации) наследуют изменения ».
Есть ли способ предотвратить обновление всех объектов. Я хотел бы, чтобы свойство каждого экземпляра было уникальным. Если нет других способов назначения функций функции? Вот код, с которым я работаю. Это позволяет мне отображать анимированные спрайты в файле three.js, но когда я создаю новые экземпляры функции, экземпляры переходят к кадру, из которого обращается новый экземпляр. Таким образом, все отображает один и тот же фрейм. Я подумал, могу ли я повернуть наследование. Все должно быть хорошо. Извините, если это небрежно, я удалил кучу вещей, которые не нужны для вопроса.
function slowToStopFunc(texture, tilesHoriz, tilesVert, numTiles, tileDispDuration) {
this.tilesHorizontal = tilesHoriz;
this.tilesVertical = tilesVert;
this.numberOfTiles = numTiles;
texture.wrapS = texture.wrapT = THREE.RepeatWrapping;
texture.repeat.set(1/this.tilesHorizontal, 1/this.tilesVertical);
this.tileDisplayDuration = tileDispDuration;
this.currentDisplayTime = 0;
this.currentTile = 3;
this.update3 = function(milliSec3) {
this.currentDisplayTime += milliSec3;
while (this.currentDisplayTime > this.tileDisplayDuration && adjustSpeed <= 2)
{
if (this.currentTile >= -1 && this.currentTile <= 14) {
this.currentTile++;
}
}
var currentColumn = this.currentTile % this.tilesHorizontal;
texture.offset.x = currentColumn/this.tilesHorizontal;
var currentRow = Math.floor(this.currentTile/ this.tilesHorizontal);
texture.offset.y = currentRow/this.tilesVertical;
}
}
может глубоко скопировать объект и тем самым будет автономным .... это то, что вы хотите? Образец того, что вы пытаетесь добиться, был бы полезен – charlietfl
@charlietfl Да, извините, я должен был положить это туда для начала. О чем говорят ваши слова. – Kahless
, так что вы говорите, когда пытаетесь «new slowToStopFunc», он реагирует на другие случаи? Это потому, что 'slowToStopFunc' является частью более крупного объекта? – charlietfl