javascript 写类方式之八
8、Ext.js的写类方式
这里用的是Ext core3.0,Ext中用Ext.extend来定义一个类(当然它更多用来扩展一个类),Ext整个框架各种控件如Panel,MessageBox等都是用Ext.extend方法来扩展。这里仅仅用它来定义一个最简单的类。
看Ext.extend的代码可得知,它仍然是用构造函数和原型来组装一个类。
这里只需传两个参数即可,第一个参数是根类Object,第二个是原型。
代码如下:
/**
* Person类
* @param {Object} name
*/
var Person = Ext.extend(Object,{
constructor : function(name) {this.name = name;},
setName : function(name) {this.name = name;},
getName : function() {return this.name;}
});
//创建一个对象
var p = new Person("Lily");
console.log(p.getName());//Lily
p.setName("Andy");
console.log(p.getName());//Andy
//测试instanceof及p.constructor是否正确指向了Person
console.log(p instanceof Person);//true
console.log(p.constructor == Person);//true
比较特殊的是,如果单纯的定义一个类,那么第一个参数永远传Object即可。
相关推荐
-
javascript 写类方式之八
8.Ext.js的写类方式 这里用的是Ext core3.0,Ext中用Ext.extend来定义一个类(当然它更多用来扩展一个类),Ext整个框架各种控件如Panel,MessageBox等都是用Ext.extend方法来扩展.这里仅仅用它来定义一个最简单的类. 看Ext.extend的代码可得知,它仍然是用构造函数和原型来组装一个类. 这里只需传两个参数即可,第一个参数是根类Object,第二个是原型. 复制代码 代码如下: /** * Person类 * @param {Object} n
-
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 = p
-
javascript 写类方式之四
4.构造函数 + 原型 直接组装一个类:同一构造函数将组装出同一类型通过前面几篇得知javascript写类无非基于构造函数 和原型 .既然这样,我们写个工具函数来写类. 复制代码 代码如下: /** * $class 写类工具函数之一 * @param {Object} constructor * @param {Object} prototype */ function $class(constructor,prototype) { var c = constructor || functi
-
javascript 写类方式之七
.dojo.js的写类方式 dojo最新是1.3.1了,记得07年时还是0.4.文档也渐渐多了起来,用dojo的也慢慢多了.dojo还发布了core版,压缩后只有27kb.dojo中用dojo.declare方法来定义一个类.dojo.declare的源码就不贴在这里了.dojo.declare有三个参数, 参数1:类名className 参数2:继承的类superclass 参数3:构造器,方法props 单纯的定义一个类实际只需传第一,三两个参数.因为这里只讨论如何定义一个类,不讨论继承.代
-
javascript 写类方式之六
6.Prototype.js的写类方式 复制代码 代码如下: //prototype.js中的代码 var Class = { create: function() { return function() { this.initialize.apply(this, arguments); } } } //简化后的 function Clazz() { return function(){ this.initialize.apply(this,arguments); } } 如下步骤写一个类, 复
-
javascript 写类方式之九
9.YUI的写类方式 这里引入的是YUI 2.7.0版,只需引入yahoo.js.YUI引入了命名空间,类似于java的包.以下yahoo的工具函数包 YAHOO.namespace YAHOO.lang YAHOO.lang.hasOwnProperty YAHOO.lang.extend YAHOO.lang.augment YAHOO.log YAHOO_config and YAHOO.env YUI Module Names写类方式: 复制代码 代码如下: //定义包名 YAHOO.n
-
javascript 写类方式之五
5.用 构造函数+原型 定义一个类:同一构造函数可以定义出多个类型 复制代码 代码如下: /** * $define 写类工具函数之二 * @param {Object} constructor * @param {Object} prototype */ function $define(constructor,prototype) { var c = constructor || function(){}; var p = prototype || {}; return function()
-
javascript 写类方式之一
EMCA262规范中没有类(class)的概念,js的new只是让他看起来更像c++,java一点.这里说的写类,只是书写js代码风格而已. 1.构造函数方式 复制代码 代码如下: /** * Person类:定义一个人,有个属性name,和一个getName方法 * @param {String} name */ function Person(name) { this.name = name; this.getName = function() { return this.name; } }
-
javascript 写类方式之三
取前面两种的优点: a.用构造函数来定义类属性(字段) b.用原型方式来定义类的方法. 就有了第三种方式.这种方式貌似采用的人较多. 3.综合构造函数/原型 复制代码 代码如下: /** * Person类:定义一个人,有个属性name,和一个getName方法 * @param {String} name */ function Person(name) { this.name = name; } Person.prototype.getName = function() { return t
-
javascript 写类方式之二
2.原型方式 复制代码 代码如下: /** * Person类:定义一个人,有个属性name,和一个getName方法 */ function Person(){} Person.prototype.name = "jack"; Person.prototype.getName = function() { return this.name;} 把类的属性(字段),方法都挂在prototype上. 造几个对象测试下: 复制代码 代码如下: var p1 = new Person();
随机推荐
- Perl split字符串分割函数用法指南
- C#开发之微信小程序发送模板消息功能
- android调用原生图片裁剪后图片尺寸缩放的解决方法
- vue组件间通信子与父详解(二)
- 在Mac OS上安装使用MongoDB的教程
- Spring实现Aware接口自定义获取bean的两种方式
- asp.net导出Excel显示中文乱码的解决方法
- MVC中基于Ajax和HTML5实现文件上传功能
- git多账号登录问题解析
- javascript 用函数语句和表达式定义函数的区别详解
- TimergliderJS 一个基于jQuery的时间轴插件
- Jquery给基本控件的取值、赋值示例
- javascript实现数据双向绑定的三种方式小结
- 使用Google工具栏追踪 Blog 留言
- Java用POI解析excel并获取所有单元格数据的实例
- NopCommerce架构分析之(八)多语言支持
- C#难点逐个击破(4):main函数
- 轻松学习C#的抽象类
- JavaScript"模拟事件"的注意要点详解
- rsync同出出现 IO error encountered导致无法删除文件的解决方法