我正在尝试在代码中检查特定类型的对象。即使对象在其原型中具有构造函数,它仍然无法返回正确的对象类型,并且在使用instanceof运算符时始终返回“object”。
以下是该对象的示例:
Simple = (function(x, y, z) {
var _w = 0.0;
return {
constructor: Simple,
x: x || 0.0,
y: y || 0.0,
z: z || 0.0,
Test: function () {
this.x += 1.0;
this.y += 1.0;
this.z += 1.0;
console.log("Private: " + _w);
console.log("xyz: [" + this.x + ", " + this.y + ", " + this.z + "]");
}
}
});
答案 0 :(得分:1)
您将返回一个具有constructor
属性的对象文字,以设置为函数Simple
。内部构造函数仍设置为Object
,因此instanceof
返回false
要使instanceof
返回true,您需要在构造函数中使用this.property
设置属性或使用原型,并使用new Simple()
初始化新对象。
function Simple(x, y, z) {
var _w = 0.0;
this.x = x || 0.0;
this.y = y || 0.0;
this.z = z || 0.0;
this.Test = function () {
this.x += 1.0;
this.y += 1.0;
this.z += 1.0;
console.log("Private: " + _w);
console.log("xyz: [" + this.x + ", " + this.y + ", " + this.z + "]");
}
});
(new Simple()) instanceof Simple //true