我有一个对象构造函数,我试图声明两个对象文字,我在几个函数中设置和比较。如果在某些过程之后对象文字中的属性不同,那么我会进行一些计算并输出结果。
function myObject() {
this.literal = {};
this.literalCopy = {};
this.setProperties = function() {
this.literal.left = something;
this.literal.offset = offsetLeft;
this.literal.viewed = 5;
this.literal.img = img_size;
this.literalCopy = this.clone(this.literal);
}
this.compareMethod = function() {
for (prop in this.literalCopy) {
if (!this.literalCopy.hasOwnProperty(prop)) {
continue;
}
if(prop == 'img' && this.literalCopy[prop] != this.literal.img) {...}
if(prop == 'viewed' && this.literalCopy[prop] != this.literal.viewed) {...}
}
}
}

比较适用于一个对象实例,但不适用于多个对象实例。最后一个实例总是得到正确的比较,之前的实例没有做任何事情或被忽略。
我的问题是:我可以像在构造函数中使用this.literal = {}
一样使用对象文字,因为我很确定我使用它们的函数是合理的。我需要使用this
声明它们,因为对象文字需要在myObject
的原型中可用。如果我在编码中天真,你可以建议另一种方法。