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
。console.log(value); console.log(value.m00); console.log(value);
実行すると、の最初の呼び出しと2番目の呼び出しに違いはありませんconsole.log(value);
。
実行console.log(typeof(value.m00))
すると、次のように表示されます。number
やってみましたが、1も表示されませんでした...の値を一時的な値parseFloat(value.m00)
に保存すると、私も表示されます。value.m00
-6.123031769111886e-17
誰かがここで何が起こっているのか手がかりを持っていますか?
PS:コード全体を表示することはできません。これは、これらの値で多くのことを行うレンダリングコードの一部です。