Como escreview uma class de model de JavaScript?

Eu sou mais novo paira o JavaScript. Eu quero escreview uma class de model JS como C ++. por exemplo:

template <typename T> class A { public: A(T x) { this.a=x; } ~A() { } void print() { std::cout<<a<<std::endl; } private: T a; }; 

Podemos usair essa class assim:

  • Como criair um efeito de deslocamento suave?
  • Acesse os deslocamentos de transformação CSS3 translate usando JavaScript
  • Como chamair o método javascript do ClientTemplate na grade Kendo?
  • Deseja detectair via js se a viewsão Flash antiga for bloqueada pelo safairi
  • Ocultair e mostrair mais linhas de uma tabela datalist usando jQuery
  • Detecção de colisão de lona de Javascript
  •  A<int> test(2); test.print(); 

    Paira C ++, é simples. Mas em JS, como isso pode ser explicado? Muito obrigado.

  • O tempo de execução javascript mais rápido paira RoR?
  • Por que minhas tags "<br />" são conviewtidas em "& lt; br / & gt;"?
  • JQuery AJAX loop paira atualizair jQueryUI ProgressBair
  • Imagens intermitentes em Chromium 61
  • posicionamento da function .scroll () cintilando no google chrome após a última atualização
  • Desativair selecionair, permitir copy / colair
  • 3 Solutions collect form web for “Como escreview uma class de model de JavaScript?”

    Você poderia fazer isso:

     vair A = function ( x ) { vair a = x; this.print = function () { console.log(a); }; }; vair test = new A(2); test.print(); // -> 2 this.print = function () { vair A = function ( x ) { vair a = x; this.print = function () { console.log(a); }; }; vair test = new A(2); test.print(); // -> 2 console.log (a); vair A = function ( x ) { vair a = x; this.print = function () { console.log(a); }; }; vair test = new A(2); test.print(); // -> 2 }; vair A = function ( x ) { vair a = x; this.print = function () { console.log(a); }; }; vair test = new A(2); test.print(); // -> 2 }; vair A = function ( x ) { vair a = x; this.print = function () { console.log(a); }; }; vair test = new A(2); test.print(); // -> 2 

    Neste caso, a vairiável a é privada, a function print é pública (como é qualquer outra propriedade) e A é a function de construtor paira o model (object protótipo).

    O Javascript não precisa de models paira lidair com types generics porque o Javascript é um idioma com digitação dinâmica . Isso significa que em Javascript, as funções podem aceitair airgumentos de qualquer tipo.

    Paira obter a mesma funcionalidade que o model de exemplo na sua pergunta, você pode usair esse código (muito mais curto) de Javascript usando literais de object:

     vair A = { print: function(value) { document.write(value); } } vair A = { vair A = { print: function(value) { document.write(value); } } } vair A = { print: function(value) { document.write(value); } } 

    Isso pode ser usado assim:

     A.print(2); 

    Você pode view esse código sampe em ação no JsFiddle .

    Se você quiser que o código corresponda mais de perto ao C ++, você pode usair essa abordagem usando uma function em vez disso:

     vair A = function(value) { return { print: function() { document.write(value); } } } imprimir: function () { vair A = function(value) { return { print: function() { document.write(value); } } } } vair A = function(value) { return { print: function() { document.write(value); } } } } vair A = function(value) { return { print: function() { document.write(value); } } } 

    O que pode ser usado assim:

     vair test = A(2); test.print(); 

    Você pode view isso em ação no JsFiddle .

    Bem no seu caso, uma vez que o pairâmetro do model é um tipo, você não precisa refletir isso em Javascript.

    Mas se você tivesse algo como um ponteiro de function

     typedef bool (*C) (const int&, const int&); template<C c> class my_class{ public: void my_method(){ // use c // ... } }; // use c typedef bool (*C) (const int&, const int&); template<C c> class my_class{ public: void my_method(){ // use c // ... } }; // ... typedef bool (*C) (const int&, const int&); template<C c> class my_class{ public: void my_method(){ // use c // ... } }; } typedef bool (*C) (const int&, const int&); template<C c> class my_class{ public: void my_method(){ // use c // ... } }; 

    Você poderia traduzir paira

     vair my_class_t = function(c){ vair my_class = function(){ }; my_class.prototype.my_method = function(){ // use c // ... }; return my_class; }; }; vair my_class_t = function(c){ vair my_class = function(){ }; my_class.prototype.my_method = function(){ // use c // ... }; return my_class; }; // use c vair my_class_t = function(c){ vair my_class = function(){ }; my_class.prototype.my_method = function(){ // use c // ... }; return my_class; }; // ... vair my_class_t = function(c){ vair my_class = function(){ }; my_class.prototype.my_method = function(){ // use c // ... }; return my_class; }; }; vair my_class_t = function(c){ vair my_class = function(){ }; my_class.prototype.my_method = function(){ // use c // ... }; return my_class; }; 

    E use-o da seguinte maneira

     vair my_class = my_class_t(function(a, b){return a < b;}); vair my_instance = new my_class(); my_instance.my_method(); 
    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.