pyoo.js
Version:
A library for Python-style OO in JavaScript
111 lines (78 loc) • 1.7 kB
Markdown
# 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