UNPKG

pyoo.js

Version:

A library for Python-style OO in JavaScript

111 lines (78 loc) 1.7 kB
# pyoo.js Uma biblioteca *JavaScript* que oferece orientação a objetos no estilo *Python*. ## Documentação ### Instalação #### Node > npm install pyoo.js Para usar ela no browser sem **Webpack**: ```html <script src="node_modules/pyoo.js/dist/pyoo.js"></script> ``` ### Classes ```javascript var CExemplo = Classe({ __init__: function(self) { self.attr1 = 'Olá'; self.attr2 = 'Mundo'; }, metodoExemplo: function(self) { return self.attr1 + ', ' + self.attr2 + '!'; } }); var objExemplo = CExemplo(); console.log(objExemplo.metodoExemplo()); ``` ### Herança As classes suportam múltipla herança e múltiplos níveis de herança. ```javascript var Animal = Classe({ __init__: function(self, nome) { self.nome = nome; }, falar: function(self) { return 'Olá, meu nome é ' + self.nome + '!'; } }); var Reptil = Classe(Animal, { __init__: function(self, nome) { Animal.__init__(self, nome); }, falar: function(self) { var fala_animal = Animal.falar(self); return fala_animal + ' Eu sou um réptil!' } }); ``` ## Exemplo ### Python ```python class Foo: def __init__(self, b): self.a = b def metodo1(self, c): return self.a + c j = Foo(6) # Escreve 10 print j.metodo1(4) ``` ### JavaScript ```javascript var Foo = Classe({ __init__: function(self, b) { self.a = b; }, metodo1: function(self, c) { self.a = 3 return(self.a + c); } }); var j = Foo(6) // Escreve 10 console.log(j.metodo1(4)); ``` ## Funcionalidades Futuras * Variáveis privadas * isinstance() * issubclass() * Decoradores