作家
登录

javascript 写类方式之十

作者: 来源:www.28hudong.com 2013-03-30 02:31:06 阅读 我要评论

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 web页面刷新的方法收集

Javascript刷新页面的几种方法: 复制代码 代码如下:1 history.go(0) 2 location.reload() 3 location=location 4 location.assign(location) 5 document.execCommand('Refresh') 6 window.navigate(location) 7 l>>>详细阅读


本文标题:javascript 写类方式之十

地址:http://www.17bianji.com/kaifa2/JS/28510.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)