`
zhouyrt
  • 浏览: 1141638 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript写类方式之十

阅读更多

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看起来更像一个类而已。见具名函数的四种调用方式(3)

 

 

  • m.rar (24.5 KB)
  • 下载次数: 18
分享到:
评论

相关推荐

    javascript 写类方式之十

    ### JavaScript 写类方式之十 #### mootools.js的版本与设计思想 mootools.js是一个轻量级的JavaScript框架,它支持模块化和面向对象编程。在本篇文章中,我们了解到mootools.js的最新版本是1.2.3,但实际例子使用...

    JavaScript权威指南(JavaScript犀牛书一本)

    《JavaScript权威指南》是JavaScript编程领域的一本经典之作,由著名技术作家David Flanagan撰写,被誉为"JavaScript犀牛书"。这本书深入浅出地讲解了JavaScript语言的核心概念、语法特性和高级特性,对于想要全面...

    JavaScript内核系列 pdf

    ES6(ECMAScript 2015)引入了许多新特性,如箭头函数、模板字符串、类、解构赋值、模块导入等,大大提高了JavaScript的可读性和效率。了解并掌握这些新特性,可以使代码更加现代和高效。 十、性能优化与最佳实践 ...

    javaScript写的计算器

    8. **代码组织**:对于复杂的计算器,JavaScript代码可能会采用模块化或面向对象的编程方式,将各个功能封装在不同的函数或类中,提高代码的可读性和可维护性。 综上所述,JavaScript编写的计算器是一个集成了事件...

    Google V8学习手记,月javascript写服务器端是多少人的梦醒呀,Google v8让javascript和php一样

    它是 Google Chrome 浏览器的重要组成部分之一,负责解析和执行 JavaScript 代码。除了浏览器中的应用之外,V8 还能够被嵌入到任何 C++ 应用程序中,使得开发者可以在 C++ 程序中直接使用 JavaScript 来编写业务逻辑...

    javascript入门教程.docx

    - **区分大小写**:JavaScript是一种区分大小写的语言,这意味着`Variable`和`variable`会被视为两个不同的标识符。 - **注释**:单行注释使用`//`,多行注释则使用`/* ... */`。 ```javascript // This is a ...

    纯javascript写的博客JSBLOG.zip

    JSBlog 是纯javascript编写博客,使用bootstarp、jquery、showdown、backbone等js类库。 本博客是基于小天天博客 并在此基础上修改完善。 本博客特色: 纯js博客 json列表 代码高亮展示,默认使用highlight.js...

    JavaScript经典进阶系列-Effective JavaScript英文原版

    《Effective JavaScript》是由David Herman编著的...通过《Effective JavaScript》,开发者不仅能深化对JavaScript语言的理解,还能学习到如何写出更专业、更具可维护性的代码,从而在JavaScript的进阶道路上更进一步。

    JavaScript手册-中文文档

    JavaScript是Web开发中不可或缺的一部分,它是一种轻量级的、解释型的编程语言,主要用于增强网页的交互性。这份“JavaScript手册—中文文档”...通过深入学习,你将能够熟练掌握JavaScript,写出高效、健壮的Web应用。

    JavaScript全集

    了解设计模式和架构原则,如单一职责、开闭原则,有助于写出高质量的JavaScript代码。 通过"Script全集.chm"文件,你可以系统地学习和复习这些知识点,逐步成为一名精通JavaScript的开发者。在实践中不断探索和应用...

    JavaScript模式(中文版带目录)

    JavaScript,作为全球最广泛使用的编程语言之一,是构建动态网页和复杂网络应用的核心技术。《JavaScript模式》一书深入探讨了这种语言中的设计模式和最佳实践,旨在帮助开发者提升代码质量和可维护性。作者Stoyan ...

    java前台计数,描述javascript

    ### JavaScript简介与应用 ...随着 Web 技术的发展,JavaScript 的应用范围越来越广,成为了前端开发的核心技术之一。理解 JavaScript 的基本概念及其与 HTML 的结合方式对于初学者来说至关重要。

    JavaScript学习资料全面整理

    10. **ES6新特性**:ECMAScript 6(简称ES6)引入了许多新特性,如类(class)、模块(import/export)、解构赋值、模板字符串、箭头函数、Promise、Set和Map等,提升了JavaScript的编写效率和可读性。 11. **Node....

    头歌教学实践平台 Web前端开发基础 JavaScript学习手册十:正则表达式

    1. 字面量表示法与构造函数:在JavaScript中,有两种创建正则表达式的方式。一种是字面量表示法,即使用`/pattern/flags`,例如`/hello/`;另一种是构造函数表示法,`new RegExp('pattern', 'flags')`,如`new ...

    李炎恢JavaScript全套课程讲义

    10. 事件:JavaScript通过事件驱动实现用户交互,常见的事件如click、mouseover、mouseout等,事件处理程序可以用addEventListener和removeEventListener进行添加和移除。 11. DOM操作:DOM(Document Object Model...

    JavaScript写的calendar.js

    这可以通过函数、类或者现代JavaScript的模块系统(如ES6的import/export)来实现,以便在不同地方重复使用或扩展功能。 8. **可访问性**:为了让所有用户都能使用日历,包括那些使用屏幕阅读器的视力障碍用户,...

    javascript对象参考手册

    10. **类与继承**:ES6引入的类是基于原型的语法糖,它提供了更接近传统面向对象编程的写法。类支持继承,通过`extends`关键字,一个类可以继承另一个类的属性和方法。 以上只是JavaScript对象涉及的一部分知识点,...

    javascript常用整理

    ### JavaScript 常用知识点梳理 #### 一、基本语法及文档结构 1. **输出语句**: `document.write("")` 是一种简单的输出方法,它会将括号内的内容直接写入当前文档流中。 2. **注释**: JavaScript 支持两种类型的...

Global site tag (gtag.js) - Google Analytics