我已声明对象'渲染'并添加了2个对象'vector3D'&通过原型“矩阵”。对于vector3D对象,我通过其原型包含了3个属性。
Render = function () {
};
Render.prototype = {
vector3D: function () {
},
matrix: function () {
},
}
var Render = new Render();
Render.vector3D.prototype = {
//Members
x: "",
y: "",
z: "",
isValid: !isNaN(this.x) && !isNaN(this.y) && !isNaN(this.z),
}
如果我想访问矢量属性,我必须每次都按照以下步骤
var Rendered = new Render();
var vector=new Rendered.vector3D();
vector.x=10;
vector.y=20;
这是正确的还是有其他简单方法可以访问vector对象的属性?
答案 0 :(得分:0)
为什么不这样做:
Render.prototype = {
vector3D: {
x: "",
y: "",
z: "",
},
matrix: {
},
}
也就是说,只需将vector3D声明为对象而不是函数。
您可以像这样访问它:
var rendered = new Render();
rendered.vector3D.x = 10;
然而,如果您这样做,那么您的所有Render
实例将共享相同的矢量坐标值,因为您在原型上设置它们。如果您希望每次需要声明一个“实例”变量时初始化向量的新实例:
Render = function () {
this.vector3D ={
x: "dd",
y: "",
z: "",
}
};