我在JavaScript中有一些代码可以存储一些浮点数,但我似乎无法打印出正确的数据,这里是我的代码片段,这就是我遇到的问题。
function Vector3(x,y,z){
this.x = x; this.y = y; this.z = z;
}
function Edge(vec1, vec2){
var vector1 = new Vector3(vec1.x,vec1.y,vec1.z);
document.write(vector1.x+ "," +vector1.y +"," + vector1.z+"<br>");
var vector2 = new Vector3(vec2.x,vec2.y,vec2.z);
}
var sqrVer = new Array();
sqrVer[1] = new Vector3(-1.0, 1.0, 1.0);
sqrVer[2] = new Vector3( 1.0, 1.0, 1.0);
sqrVer[3] = new Vector3(-1.0, -1.0, 1.0);
sqrVer[4] = new Vector3( 1.0, -1.0, 1.0);
sqrVer[5] = new Vector3( 1.0, -1.0, -1.0);
sqrVer[6] = new Vector3( 1.0, 1.0, -1.0);
sqrVer[7] = new Vector3(-1.0, 1.0, -1.0);
sqrVer[8] = new Vector3(-1.0, -1.0, -1.0);
var sqrEdge = new Array();
sqrEdge[1] = new Edge(sqrVer[1], sqrVer[2]);
document.write(sqrVer[1].x + "<br>");
document.write(sqrEdge[1].vector1.x + "<br>");
现在打印出来的是
-1.0, 1.0, 1.0,
-1.0
但对于转到sqrEdge并试图打印出x的行,没有任何内容写入屏幕???这是为什么?
答案 0 :(得分:0)
您的Edge功能实际上并未创建并返回任何内容。这会导致程序在打印出来之前崩溃,因为它返回一个空对象(由于“new”),{}。vector1 = undefined而{} .vector1.x会抛出错误。
要解决此问题,请尝试:
function Edge(vec1, vec2){
this.vector1 = new Vector3(vec1.x,vec1.y,vec1.z);
this.vector2 = new Vector3(vec2.x,vec2.y,vec2.z);
}
我的建议是学习如何使用其中一个javascript控制台(chrome或safari中的“开发人员工具”,或firefox中的firebug)。
这将显示您何时出错,并且您还可以使用console.log()而不是document.write(),它可以让您自己发送消息而无需将其写入页面。