📄 class.md.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 + -