没有打印出数据

时间:2012-10-21 18:11:00

标签: javascript html5

我在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的行,没有任何内容写入屏幕???这是为什么?

1 个答案:

答案 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(),它可以让您自己发送消息而无需将其写入页面。