Google Chrome 的 Javascript 引擎对这个原型中的变量值做了一些奇怪的事情。
原型定义为:
function matrix4def()
{
 this.m00=0;
 this.m01=0;
 this.m02=0;
 this.m03=0;
 this.m10=0;
 this.m11=0;
 this.m12=0;
 this.m13=0;
 this.m20=0;
 this.m21=0;
 this.m22=0;
 this.m23=0;
 this.m30=0;
 this.m31=0;
 this.m32=0;
 this.m33=0;
};
var value = new matrix4def();
console.log(value)向我们展示:
 m00: 1
 m01: 0
 m02: 0
 m03: 0
 m10: 0
 m11: 1
 m12: 0
 m13: 0
 m20: 0
 m21: 0
 m22: 1
 m23: 0
 m30: 0
 m31: 0
 m32: 0
 m33: 1
使用console.log(value.m00)时会告诉我们:-6.123031769111886e-17. Doingconsole.log(value); console.log(value.m00); console.log(value);的第一次和第二次调用没有区别console.log(value);。
做console.log(typeof(value.m00))会告诉我们:number
我试过做parseFloat(value.m00),但也没有显示 1... 将值存储value.m00到临时值也向我展示-6.123031769111886e-17了。
有谁知道这里发生了什么?
PS:我无法向您展示整个代码;它是渲染代码的一部分,对这些值有很多作用。