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:我无法向您展示整个代码;它是渲染代码的一部分,对这些值有很多作用。