javascript 写类方式之十
javascript 写类方式之十
发布时间:2016-12-30 来源:查字典编辑
摘要:10、mootools.js的写类方式mootools.js的最新版本是1.2.3,这里使用的是1.2.0。mootool被设计成非常紧凑的...

10、mootools.js的写类方式

mootools.js的最新版本是1.2.3,这里使用的是1.2.0。mootool被设计成非常紧凑的,模块化的,面向对象的的js库。mootool中写类用Class类。Class类由Native类new出来的:

复制代码 代码如下:

/*

*Script: Class.js

*/

var Class = new Native({

name: 'Class',

initialize: function(properties){

properties = properties || {};

var klass = function(empty){

for (var key in this) this[key] = $unlink(this[key]);

for (var mutator in Class.Mutators){

if (!this[mutator]) continue;

Class.Mutators[mutator](this, this[mutator]);

delete this[mutator];

}

this.constructor = klass;

if (empty === $empty) return this;

var self = (this.initialize) ? this.initialize.apply(this, arguments) : this;

if (this.options && this.options.initialize) this.options.initialize.call(this);

return self;

};

$extend(klass, this);

klass.constructor = Class;

klass.prototype = properties;

return klass;

}

});

Native方法是mootools中一个非常重要的方法,很多类都用它去组装。如Window,Document,Event。当然还有这里的Class,导入mootools后我们写类时只需要用Class就行了。一个Person类:

复制代码 代码如下:

/**

* Person类

* @param {Object} name

*/

var Person = new Class({

initialize: function(name){

this.name = name;

},

setName : function(name) {

this.name = name;

},

getName : function() {

return this.name;

}

})

//new一个对象

var p = new Person("jack");

//测试set,get方法

console.log(p.getName());//jac

p.setName('andy');

console.log(p.getName());//andy

//测试instanceof及p.constructor是否正确指向了Person

console.log(p instanceof Person); //true

console.log(p.constructor == Person); //true

Native实际上只是一个普通函数,它通过所传参数组装了一个类(function),最后返回该类(function)。既然Native是函数,函数调用的方式是(),call,apply。但在mootools中却用new Native(obj)方式。为何?原因只是使Native看起来更像一个类而已。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类