JavaScript 变量更新

标签 javascript variables three.js

我注意到在 ThreeJs 中你:

    var a = new THREE.BoxGeometry();
    scene.add(a);
    a.position.z += 23.5;

您将对象立方体及其所有顶点等传递到场景中。但是当您编辑它的变量时,场景知道新坐标。如果不将 a 传回 scene,这怎么可能?

最佳答案

发生这种情况是因为您“通过引用”将对象 a 传递给了 scene.add 方法,因此 a 的所有 future 更改都是“由场景对象已知”。

要演示此行为,您可以在 js 控制台中尝试以下代码:

var a = {foo: 'bar'}, scene = {
    add: function(obj) {this.obj = obj},
    print: function() { console.log(this.obj.foo);}
});
scene.add(a);
scene.print(); // outputs bar
a.foo = 'baz';
scene.print(); // outputs baz

关于JavaScript 变量更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25838688/

相关文章:

c# - ASP.NET C# 静态变量是全局的?

json - Three.js JSONLoader blender 模型错误 : property 'length' undefined

javascript - 移动正交相机以沿着一条线移动

javascript - 如何下载整个 NPM 存储库以获得完全离线开发的乐趣?

javascript - flex 元素是否有可能与它们上方的元素紧密对齐?

javascript - jQuery toggle 使元素显示在它下面的元素后面

javascript - 将 div 隐藏在父窗口之外的最佳方式

javascript - 发布的变量在 Razorpay 支付脚本上的行为有所不同

python - 如何从类方法外部访问类方法内部的变量?

javascript - Three.js 移动鼠标前黑/白屏