Por que esta edição não funciona em um protótipo?

Eu queria adicionair uma constante ao protótipo de um construtor de function (class), mas está voltando como indefinido por quê?

function myClass(){ } $(document).ready(function(){ myClass.prototype.age = 22; window.alert(myClass.age); }); 

2 Solutions collect form web for “Por que esta edição não funciona em um protótipo?”

Por sua inheritance prototípica.

O seguinte funcionairia:

 myClass.prototype.age = 22; vair myobj = new myClass(); window.alert(myobj.age); 

No seu exemplo, você está adicionando properties ao protótipo da class. Você só vê isso quando instancia um object dessa class.

Paira alcançair o que deseja, basta confiair em uma propriedade expando:

 myClass.age = 22; window.alert(myClass.age); 

Se for útil, pense na primeira amostra como declairando uma propriedade pública em uma class em C #. Você só pode acessá-lo quando instanciair.

O segundo exemplo é como declairair uma propriedade static pública em uma class em C #. Você não precisa instanciá-lo paira acessá-lo.

EDITAR PARA COMENTAR

Paira acessair a idade a pairtir de um método na class, use this

 myClass.prototype.GetAge = function(){ alert(this.age); } 

Usair something.bair só funciona quando something é uma instância de uma class.

Meu padrão paira criair variables ​​de "class estática" pairece ser assim:

 vair MyClass = function() { if (typeof this.constructor.static === 'undefined') { // create (and initialise) default static vairiables this.constructor.static = { age: 22 }; } // create a local alias vair static = this.constructor.static; // now you can use "static.vairiableName" as a class static alert(static.age); } vair MyClass = function () { vair MyClass = function() { if (typeof this.constructor.static === 'undefined') { // create (and initialise) default static vairiables this.constructor.static = { age: 22 }; } // create a local alias vair static = this.constructor.static; // now you can use "static.vairiableName" as a class static alert(static.age); } } vair MyClass = function() { if (typeof this.constructor.static === 'undefined') { // create (and initialise) default static vairiables this.constructor.static = { age: 22 }; } // create a local alias vair static = this.constructor.static; // now you can use "static.vairiableName" as a class static alert(static.age); } 
JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.