Class.create()
Usando o recurso Class.create() da biblioteca prototype.js criei a classe "MyBase":
var Class = { create: function() { return function() { this.initialize.apply(this, arguments); } }}var MyBase = Class.create();MyBase.prototype = { ID: 0, Items: [], initialize: function(_name){ this.ID++; this.Items.push(this); this.name = _name || "undefined"; }}
Depois eu criei os objetos A e B do tipo "MyBase" e os imprimi na tela conforme segue abaixo:
var A = new MyBase("A_TESTE");var B = new MyBase("B_TESTE");var msg = "A<br>. Name: " + A.name + "<br>. ID: " + A.ID + "<br>. Items.length: " + A.Items.length + "<br><br>" + "B<br>. Name: " + B.name + "<br>. ID: " + B.ID + "<br>. Items.length: " + B.Items.length + "<br><br>";document.write(msg);
A impressão resulta em:
A. Name: A_TESTE. ID: 1. Items.length: 2B. Name: B_TESTE. ID: 1. Items.length: 2
Repare que a propriedade Items da classe armazenou os dois Objetos criados, portanto penso eu que a propriedade Items é visto por todos.
Porém reparem que a propriedade ID não reage da mesma forma. Pela minha lógica o ID do item B deveria ser "2", logo ficaria assim:
A. Name: A_TESTE. ID: 1. Items.length: 2B. Name: B_TESTE. ID: 2. Items.length: 2
Alguém pode me explicar porque que a propriedade Items é vista por todos e ID não... sendo que ambos estão declarados no mesmo escopo?
Discussão (3)
Carregando comentários...