有没有办法阻止函数的实例相互继承属性?我正在阅读一篇关于 Javascripts 原型对象的文章并阅读了以下内容。
“重要的是要注意原型是“活的”。对象在 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;
}
}