转换为对象的数字
numbers converted to objects
我在使用一些JavaScript时遇到了麻烦,其中一些明显的数字值突然变成了对象,我不知道如何或为什么。
代码片段:
addFigure("-1,1,-0.5_1,1,-0.5_0.5,-1,-0.5_-0.5,-1,-0.5");
function addFigure(t) {
var fig = new figure();
var v = t.split("_");
var points = new Array();
for (var i = 0; i < v.length; i++) {
var coords = v[i].split(",");
var x = parseFloat(coords[0]);
var y = parseFloat(coords[1]);
var z = parseFloat(coords[2]);
alert(typeof x + " " +typeof y)
var point = new Point3D(x, y, z);
alert(typeof point.x + " " + typeof point.y)
//both alerts print out "number number"
fig.addPoint(point);
}
figures.push(fig);
}
function figure() {
this.points = new Array();
this.addPoint = function (x, y, z) {
var v = new Point3D(x, y, z);
alert(typeof x + " " + typeof y)
//this alert prints out "Object undefined"
this.points.push(v)
}
this.getPoints = function () { return this.points }
}
您在此处使用一个参数(Point3D
)调用addPoint
函数:
fig.addPoint(point);
但addPoint
似乎期望将这一点视为三个单独的参数:
this.addPoint = function (x, y, z) {
所以你最终会得到x
是你传入的Point3D
,而y
和z
是undefined
。
您的addPoint()
方法似乎期望分别传递x
、y
和z
属性,但您只传递了一个参数,即point
对象。
将方法更改为:
this.addPoint(point) {
/* x, y and z are now retrievable from point.x, point.y etc */
}
或者将调用更改为
fig.addPoint(point.x, point.y, point.z);
相关文章:
- 如何按对象反转Angular ngRepeat的顺序's键,这些键是数字键
- 对象获胜'如果qml中的其他地方定义了数字动画属性,则t设置动画
- 更改json/javascript对象var名称或从数字var中检索值
- 按数字而不是按名称选择JSON对象
- 在Javascript中,如何在JSON对象中将1.00表示为数字
- 在JavaScript中,在对象上装箱每个数字和字符串的性能成本是多少
- 获取对象的所有可能组合,其中值的总和与数字匹配
- JavaScript 对象 - 未定义的数字键文字
- 转换为对象的数字
- Javascript:接收对象并返回对象中描述的所有数字的列表的函数
- 在对象数组中将数字相加
- 如何在谷歌可视化api柱状图中使用的json对象内用数字替换字符串值
- 将函数应用于填充有数字的对象
- 如何访问以数字开头的对象属性(语法错误:意外的标识符)
- 当键是数字时,如何在JavaScript中对对象值进行排序
- 如何在具有数字的JSON对象中导航
- 检查布尔值并将其转换为对象中的数字
- 使用带有数字键的对象呈现 _.template
- 数字和数字对象有什么区别
- 谷歌访问和重命名数字对象名称