fus
Version:
POO pour Nodejs
110 lines (77 loc) • 3.19 kB
Markdown
# Fus
_v0.1.1_
POO pour Nodejs & navigateur.
_`extend`, `equal` et `clone`._
### Get it! _(Nodejs)_
Fus est dans [npm](https://npmjs.org/package/fus).
```
$ npm install fus
```
```js
var fus = require('fus');
```
### Exemple
```js
function Klass1(a)
{
this.a = a;
}
function Klass2(a, b)
{
// Appeller super
this.super(a); // Methode 1: TOUJOURS: Ne pas oublier
Klass2.super(this, a); // Methode 2 (Conseillé): Peut être oublié
this.b = b;
}
fus.extend(Klass2, Klass1); // Etend Klass2 avec Klass1
var exemple = new Klass2('a', 'b');
console.inspect(exemple);
```
Affiche:
```js
{
a: 'a',
b: 'b'
}
```
_Plus d'exemple sur `extend` dans [exemple.js](exemple.js)._
### Références
_Ce sont les mêmes fonctions pour Nodejs et pour navigateur._
##### Fonction `fus.extend(klass, parent)`
_void_ Extend la `klass` avec la classe `parent`.
* `klass` _class_ Classe à étendre.
* `parent` _class_ Classe parente.
Le `prototype` de `parent` est copiée et la méthode et la fonction `super()` sont ajoutées à `klass` _qui prend comme argument les mêmes arguments de `parent`_.
__Une classe étendue doit toujours exécuter la méthode `this.super(arg, arg2)` sauf si vous utilisez la fonction `klass.super(this, arg, arg2)` !__
##### Fonction `fus.clone(obj, recursif)`
_Object_ Retourne la copie de `obj`. Si `recursif` est `true`, les propriétés seront clonnées aussi.
* `obj` _Object_ Objet à cloner.
* `recursive` _boolean_ Copie récursive. _(Optionnel, par défaut `false`)_
_Si `obj` n'est pas un objet, clone retourne `null`._
##### Fonction `fus.equal(obj1, obj2)`
_boolean_ Retourne `true` si `obj1` et `obj2` sont identiques.
* `obj1` _Object_ Objet 1.
* `obj2` _Object_ Objet 2.
`obj1` et `obj2` peuvent être d'une instance ou d'une classe différente, seul les valeurs sont testées.
_Si `obj1` ou `obj2` n'est pas un objet, une comparaison stricte `===` sera retournée._
### License
> The MIT License (MIT)
>
> Copyright (c) 2013 juloo
>
> Permission is hereby granted, free of charge, to any person obtaining a copy of
> this software and associated documentation files (the "Software"), to deal in
> the Software without restriction, including without limitation the rights to
> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
> the Software, and to permit persons to whom the Software is furnished to do so,
> subject to the following conditions:
>
> The above copyright notice and this permission notice shall be included in all
> copies or substantial portions of the Software.
>
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
> FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
> COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
> IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
> CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.