Three.js代码中rotationAxis自定义属性的创建原理问询
解答:自定义属性的本质
这个rotationAxis不是Three.js的内置属性,完全是开发者自己给THREE.Vector3实例添加的自定义属性。
原因很简单:JavaScript是动态语言,任何对象(包括类的实例)都可以随时新增属性,不需要提前在类的定义里声明。你创建new THREE.Vector3(20, 0, 0)得到vertex实例后,直接赋值vertex.rotationAxis,就相当于给这个实例额外挂载了一个存储旋转轴数据的属性,用来在后续的动画逻辑里复用这个轴向量。
至于你把它改成字母“A”也能正常运行,是因为只要后续代码中访问这个属性时用对应的名称(比如把读取的地方也改成vertex.A),它就只是一个普通的自定义数据载体,和Three.js本身的API没有任何绑定关系——开发者只是借Vector3实例来顺便存储这个额外信息而已。
内容的提问来源于stack exchange,提问作者Yerbs
相关产品推荐
相关产品推荐

