使用此方法在javascript对象构造函数中创建对象文字

时间:2016-01-07 01:16:58

标签: javascript object constructor this object-literal

我有一个对象构造函数,我试图声明两个对象文字,我在几个函数中设置和比较。如果在某些过程之后对象文字中的属性不同,那么我会进行一些计算并输出结果。



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的原型中可用。如果我在编码中天真,你可以建议另一种方法。

0 个答案:

没有答案