2015-12-02 233 views
0

第一,这是我的代码:的JavaScript创建对象的数组bidimentional

var rettangolo = { 
     rectX_top: 0, 
     recX_bottom: 0, 
     rectY_top: 0, 
     rectY_top: 0, 
     colpito: false, 
     colore: 'hsl(' + 360 * Math.random() + ', 50%, 50%)', 

     rettangolo: function() { 
     this.setRectX_top(0); 
     this.setRectX_bottom(0); 
     this.setRectY_top(0); 
     this.setRectY_top(0); 
     this.setColpito(false); 
     this.setColore('red'); 
     }, 

     setColpito: function(colpito) { 
      this.colpito = colpito; 
     }, 

     setColore: function(colore) { 
      this.colore = colore; 
     }, 

     setRectY_top: function(top) { 
      rectY_top = top; 
     }, 

     setRectX_top: function(top) { 
      rectX_top = top; 
     }, 

     setRectX_bottom: function(bottom) { 
      rectX_bottom = bottom; 
     }, 

     setRectY_bottom: function(bottom) { 
      rectY_bottom = bottom; 
     }, 

     <!--  GET METHODS  --> 

     getColore: function() { 
      return this.colore; 
     }, 

     getRectY_top: function() { 
      return this.rectY_top; 
     }, 

     getColpito: function() { 
      return this.colpito; 
     }, 

     getRectX_top: function() { 
      return this.rectX_top; 
     }, 

     getRectX_bottom: function() { 
      return this.rectX_bottom; 
     }, 

     getRectY_bottom: function() { 
      return this.rectY_bottom; 
     }, 



    } 

这是我的课,现在我需要创建这个类的多个实例。 这可能吗?如果是这样,你如何实现它? (另外,这是否正确?请注意,这是我创建的第一堂课,因为他们从未在学校解释过)。 谢谢!

+0

不,这是不正确的。寻找“JavaScript构造函数”。 – Alnitak

+0

我猜对了... –

+0

你写对象而不是类。如果您需要多个实例,请编写函数。 –

回答

1

您需要制作构造函数或工厂函数。

阅读本https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects

Constructor function vs Factory functions

有很多方法来实现这个,这是其中之一。显然你可以扩展它来适应你的情况。

var object = function(options) { 

    var object = { 
     id: options.id, 
     property: 'value' 
    }; 

    return object; 
}; 

var a = object({id:1}); 
var b = object({id:2}); 

console.log(a); 
console.log(b); 

这表明,你可以创建从相同构造的两个对象由明显的两个对象在财产属性依赖于通过ID选项的值相同和不同的ID。

此外,该行注释:

<!--  GET METHODS  --> 

将抛出一个错误,在JavaScript中使用任何///* */征求意见。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar

+1

你不应该在这样的工厂中使用'new'关键字。 'var a = object({id:1})'是您使用您定义的函数创建实例所需的全部。当函数是构造函数时只能使用'new'。看到[这里](http://stackoverflow.com/questions/8698726/constructor-function-vs-factory-functions) – jshanley

+0

我设法做我想要的东西,谢谢你,你做了我的一天。谢谢 –