Class
优质
小牛编辑
133浏览
2023-12-01
Class
MooTools框架的基类。
Class Method: constructor
语法:
var MyClass = new Class(properties);
参数:
- 性能 - 可以是以下类型之一:
- (object)类属性的集合。还接受一些特殊属性,如Extends, Implements和initialize(见下文) 。
- (function)initialize(初始化)函数(见下文) 。
Property: Extends
- (class)这个类将被扩展(基类)。
也基类有同名方法,用this.parent访问基类的同名方法,所以你可以重写方法.
Property: Implements
- (class)这个类的属性将被复制到目标类。
- (array)类的数组,所有类的属性将被复制到目标类。
Implements与Extends类似,但Implements可以多继承,Implements应该放在Extends之后,但在其它属性之前.
Property: initialize
- (function)构造函数,当实例被创建时执行。
Property: toElement
- (function)返回一个html元素。当在document.id()函数里时,此方法会被自动调用。
返回:
- (class)创建的类。
示例:
Class示例:
var Cat = new Class({ initialize: function(name){ this.name = name; } }); var myCat = new Cat('Micia'); alert(myCat.name); // alerts 'Micia' var Cow = new Class({ initialize: function(){ alert('moooo'); } });
Extends示例:
var Animal = new Class({ initialize: function(age){ this.age = age; } }); var Cat = new Class({ Extends: Animal, initialize: function(name, age){ this.parent(age); // calls initalize method of Animal class this.name = name; } }); var myCat = new Cat('Micia', 20); alert(myCat.name); // alerts 'Micia'. alert(myCat.age); // alerts 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); // alerts 'Micia'.
Class Method: implement
改变基类的原型,和new Class(Implements:function(){})一样,但方便修改已存在的类.
语法:
MyClass.implement(properties);
参数:
- 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); // alerts 'Micia'