# pandora-class

> 提供简单的 OO 实现

Latest version **1.2.0** (published 2016-12-22) · 0 weekly downloads

## Install

```sh
npm install pandora-class
pnpm add pandora-class
yarn add pandora-class
bun add pandora-class
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.2.0 |
| Published | 2016-12-22 |
| First published | 2016-11-10 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | pandorajs |
| Maintainers | lynzz |
| Keywords | pandora, class |

## Links

- npm: https://www.npmjs.com/package/pandora-class
- Repository: https://github.com/pandorajs/class
- Issues: https://github.com/pandorajs/article/class
- npm.io page: https://npm.io/package/pandora-class

## Alternatives

- [localforage](https://npm.io/package/localforage.md) — 6.2M weekly downloads
- [localforage-observable](https://npm.io/package/localforage-observable.md) — 30.8K weekly downloads
- [@y/y](https://npm.io/package/@y/y.md) — 30.1K weekly downloads
- [@metaobjectsdev/render](https://npm.io/package/@metaobjectsdev/render.md) — 3.5K weekly downloads
- [@ledgerhq/coin-algorand](https://npm.io/package/@ledgerhq/coin-algorand.md) — 1.1K weekly downloads

## Recent versions

- 1.2.0 (latest) — 2016-12-22
- 1.1.0 — 2016-11-10

## README

# pandora-class

---
提供简单的 OO 实现
---

## 安装

```
$ spm install pandora-class --save
```

## 使用说明

###创建类
```js
var Class = require('pandora-class');
var Person = Class.create({
  initialize: function (name, age) {
    this.name = name;
    this.age = age;
  }
});

```
###对类扩展（继承）
```js
var Student = Person.extend({
  //initialize是内置的初始化方法，实例化时自动执行
  initialize: function (name, age, school) {
    Student.superclass.initialize.apply(this, arguments);
	//superclass是Student的父类，也就是Person，这句是调用父类的初始化方法。
    this.school = school;
  }
});

```  
或
```js
var Student = Class.create(Person, {
 initialize: function (name, age, school) {
    Student.superclass.initialize.apply(this, arguments);
    this.school = school;
  }
});

``` 
###对实例扩展  
```js
var person = new Person('xiaoming', 18);
person.extend({
  showName: function () {
    console.log(this.name);
  }
});
person.showName(); //xiaoming
``` 

###混入
```js
var proto1 = {
    height: 175
  },
  proto2 = {
    getHeight: function() {
      return this.height;
    }
  };
```
然后通过以下方式把属性或方法混入到类里。
```js
var Student = Person.extend({
  mixins: [proto1, proto2]
});
```
或
```js
var Student = Class.create(Person,{
  mixins: [proto1, proto2]
});
```
混入后，Student就拥有height属性和getHeight()方法。

---
_Source: https://npm.io/package/pandora-class · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
