⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 class.md.svn-base

📁 mooltools源码很不错的源码
💻 SVN-BASE
字号:
Native: Class {#Class}
======================

[MooTools](http://mootools.net/)框架中类机制的提供者

Class 方法: constructor {#Class:constructor}
----------------------------------------------

### 语法:

	var MyClass = new Class(properties);

### 参数:

1. properties - (*object*) 一组将应用到新建类上的属性集合. 另外也接受一组特殊的属性,如:Extends, Implements, 以及initialize. 参见如下:

#### 属性: Extends

* (*class*) 将被新类继承的父类

新建的类将包含父类中的所有方法,并且每个方法都有一个parent属性,通过它可以调用父方法

#### 属性: Implements

* (*object*) 如果传入的是一个对象, 则该对象的属性将被复制至新类中
* (*class*)  如果传入的是一个Class,则该Class的属性将将被复制至新类中
* (*array*)  如果传入的是一个数组(数组元素是对象或Class),则数组中的对象或Class的属性将将被复制至新类中

Implements和Extends十分相似, 但Implements的同名属性会被子类覆盖(不像Extends可以通过parent仍可调用). 对需要在新类中实现一组默认属性(来自其他类)的情况下非常有用.

#### 属性: initialize

* (*function*) initialize函数作为类实例化时的构造方法

### 返回值:

* (*class*) 新建的类

### 示例:

#### Class创建演示:

	var Cat = new Class({
		initialize: function(name){
			this.name = name;
		}
	});
	var myCat = new Cat('Micia');
	alert(myCat.name); //显示 'Micia'

	var Cow = new Class({
		initialize: function(){
			alert('moooo');
		}
	});
	var Effie = new Cow($empty); //注意: 这里将不会显示'moooo', 因为initialize方法已被$empty函数覆盖

#### Extends使用演示:

	var Animal = new Class({
		initialize: function(age){
			this.age = age;
		}
	});
	var Cat = new Class({
		Extends: Animal,
		initialize: function(name, age){
			this.parent(age); //调用Animal的initalize方法
			this.name = name;
		}
	});
	var myCat = new Cat('Micia', 20);
	alert(myCat.name); //显示 'Micia'.
	alert(myCat.age);  //显示 20.

#### Implements使用演示:

	var Animal = new Class({
		initialize: function(age){
			this.age = age;
		}
	});
	var Cat = new Class({
		Implements: Animal,
		setName: function(name){
			this.name = name
		}
	});
	var myAnimal = new Cat(20);
	myAnimal.setName('Micia');
	alert(myAnimal.name); //显示 'Micia'.




Class 方法: implement {#Class:implement}
------------------------------------------

将传入的属性实现到该类的prototype中.
等同于在[新创建类](#Class:constructor)时使用Implements属性, 但它的方便之处在于可在创建类之后随时更改已有的类

### 语法:

	MyClass.implement(properties);

### 参数:

1. properties - (*object*) 将被添加到基类中的属性

### 示例:

	var Animal = new Class({
		initialize: function(age){
			this.age = age;
		}
	});
	Animal.implement({
		setName: function(name){
			this.name = name;
		}
	});
	var myAnimal = new Animal(20);
	myAnimal.setName('Micia');
	alert(myAnimal.name); //显示 'Micia'

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -