- 浏览: 1776554 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (641)
- vb2005xu自己动手系列 (174)
- vb2005xu开发文章转摘 (47)
- vb2005xu发发牢骚 (99)
- vb2005xu新技术灌水 (12)
- vb2005xu网络资源集锦 (21)
- vb2005xu软件学习 (60)
- 英语学习 (3)
- JavaScript 学习 (54)
- JAVA OOP 巩固 之 CustomDatabase 的开发 (5)
- 2013年9月之前所在公司 记事 (7)
- FleaPHP/QEEPHP 资料 (87)
- JAVA MAIL 学习篇 (4)
- Python turbogears (5)
- Rails 个人开发四部曲 (3)
- 名人传 (8)
- iwp framework (5)
- 高考零分作文 (5)
- startos (8)
- lua (0)
- 职场 (1)
最新评论
-
hellotieye:
自己 评论 自己 挺嗨呀
Mysql sql查询时 if 的用法 -
igevin:
转载请标明出处,转自Gevin的博客http://blog.i ...
RESTful API 编写指南 -
Theobob:
...
实现简单的ACL -
vb2005xu:
比如 对于 curl 调用就不再需要 加各种if 判断了,
$ ...
搞一个简单的数据打印工具AsDebug の Laravel -
vb2005xu:
http://geekplux.com/wiki/
YII2 模块内自定义错误页
/** * 定义包 * @param {} ns * @return {} */ Xu.pkg = function(ns) { if (!ns || !ns.length) { return null; } var levels = ns.split("."); var nsobj = Xu; for (var i = (levels[0] == "Xu") ? 1 : 0; i < levels.length; ++i) { nsobj[levels[i]] = nsobj[levels[i]] || {}; nsobj = nsobj[levels[i]]; } return nsobj; };
// ------------------- Xu.Core.Class命名空间 Xu.pkg("Core.Class"); var SYS_DEF_CLASS_NS = 'Xu.Class.Sys' ; var USER_DEF_CLASS_NS = 'Xu.Class.Custom' ; /** * 验证类是否存在 * @param {String} Class * @return {Boolean} */ Core.Class.isExist = function(Class){ if (Core.Util.isFunction(Class)) return true ; return false ; }; Core.Class.remove = function(Class){ if (Core.Class.isExist(Class)) Xu.pkg(Class.prototype.__pkg__)[Class.prototype.__class__] = null ; }; Core.Class.hasProperty = function(Class,property){ if (Core.Class.isExist(Class)) if ( Class[property] || Class.prototype[property]) return true ; return false ; }; /** * 模拟类的定义 , 支持包机制,继承和多态 * @param packageName {String} 包的名字 * @param className {String} 类的名字 * @param superClass {Class} 父类对象 * @param classImp {Object} 类的实现代码 * @param isOverride {Boolean} 是否覆盖,当类定义存在时,缺省不覆盖 * * @return {Function} */ Core.Class.create = function(packageName,className,superClass,classImp,isOverride){ if (Core.Util.isNull(className) || className === ""){ return null ; } isOverride = isOverride || false ; try { var $this_class = eval(packageName + "." +className); if (Core.Class.isExist($this_class)) { trace( "isExist: " + className + " Override:" + isOverride ); if (!isOverride){ return null ; } } } catch(e){ //如果出异常,说明该类没有定义 } if (Core.Util.isNull(packageName) || packageName === ""){ packageName = USER_DEF_CLASS_NS ; } $this_pkg = Xu.pkg(packageName); //定义父类,将子类的原型 指向父类 if (Core.Util.isNull(superClass) || superClass === ""){ // superClass = Object ; superClass = Xu.Class.Sys.XClass ; } //定义类 $this_class = $this_pkg[className] = function(){}; // 将子类的原型 指向父类,以此获取属性继承 $this_class.prototype = new superClass(); Object.extend($this_class.prototype , { '__pkg__': packageName , '__superclass__': $this_class.prototype['__class__'] || 'Object', '__class__': className , 'toString': function(){ return "[class: " + this.__pkg__ + "." + this.__class__ + "]" ; } } ); if (Core.Util.isObject(classImp)){ $this_class.prototype = Object.extend( $this_class.prototype,classImp); } return $this_class ; } ; //定义基类, 用于框架中所创建的类的基类. Core.Class.create(SYS_DEF_CLASS_NS,'XClass',Object,{ 'version': 'V0.1' }); // Xu.Core.Class 测试区域 //测试 类覆盖定义 ; //Core.Class.create(SYS_DEF_CLASS_NS,'XClass',Object,{ // 'version': 'V0.5' //},true); // //// 测试 类属性检查方法 ; //Xu.Class.Sys.XClass.ve = '2' ; //trace(Core.Class.hasProperty(Xu.Class.Sys.XClass,'ve')); // ////Core.Class.remove(Xu.Class.Sys.XClass); // //var x_class = new Xu.Class.Sys.XClass(); //trace(x_class.toString() + x_class.version ); //traceobj('XClass',Xu.Class.Sys.XClass.prototype); //// //var XClass_ = Core.Class.create(null,'XClass_',null,{h:'hello'}); //// //var x_class_ = new XClass_(); //trace(x_class_.toString() + x_class_.version ); //traceobj('XClass_',XClass_.prototype); //// //var X_ = Core.Class.create(null,'X_',XClass_,null); //// //var x_ = new X_(); //trace(x_.toString() + x_.version ); //traceobj('X_',X_.prototype);
测试使用的,呵呵 /...
评论
2 楼
vb2005xu
2009-11-03
定义事件处理功能类. Core.Base.Event
/* * 定义事件处理功能类. Core.Base.Event * * $cpnavmenus = $clsN($TagN('body')[0],'cpnavmenu'); * $tEvent = new Core.Base.Event(); * for(var i=0;i<$cpnavmenus.length;i++){ * $tEvent.addEvent( $cpnavmenus[i], 'click', function(){ alert(this.id); } ); * } */ Core.Class.create('Core.Base','Event',null,{ // event handlers addEvent: function( obj, type, fn ){ if (obj.addEventListener) obj.addEventListener( type, fn, false ); else if (obj.attachEvent) { obj["e"+type+fn] = fn; obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }; obj.attachEvent( "on"+type, obj[type+fn] ); } }, removeEvent: function ( obj, type, fn ) { if (obj.removeEventListener) obj.removeEventListener( type, fn, false ); else if (obj.detachEvent) { obj.detachEvent( "on"+type, obj[type+fn] ); obj[type+fn] = null; obj["e"+type+fn] = null; } } });
1 楼
vb2005xu
2009-11-02
//定义特殊的 App.Data.UML.UObject 对象 Core.Class.create('App.Data.UML','UObject',null,{ 'title': null , 'description': null }); traceobj('App.Data.UML.UObject',new App.Data.UML.UObject()); // Core.Class.create('App.Data.UML','Diagram',App.Data.UML.UObject,{ 'property': [] , 'methods': [] }); traceobj('App.Data.UML.Diagram',new App.Data.UML.Diagram());
发表评论
-
常用的 js 代码梳理
2016-06-16 12:00 1919/** * 格式化时间函数 * @param {form ... -
fineuploader 跨子域上传文件 cookie丢失问题的解决
2015-10-14 13:30 4811目前的项目中,使用到了fineuploader 这个纯htm ... -
2014 I Love You!
2014-02-14 15:40 1267保存成 html文件后打开 写道 <html> ... -
阻止checkbox的父元素事件冒泡
2014-01-15 20:33 8735今天在开发后台权限管理时使用了tinyaccordion ... -
整理下之前的js代码 moogens.js 记录下
2013-11-26 11:49 1207moogens.jshttps://github.com/v ... -
AOP 在js中的应用
2013-08-29 19:21 0http://www.alloyteam.com/2013/ ... -
自己动手增强 jquery.multiselect2side 调用
2012-11-13 17:50 8631最近用到一个jq插件 jquery.multiselect ... -
坑爹的HTML5应用集锦
2012-11-06 16:23 12451. 3D的俄罗斯方块 http://alteredquali ... -
小旭改的分页代码
2012-10-22 15:54 1344/** * 说明: 在页面指定元素中构建分页条 * ... -
一道js题 的分析历程
2012-08-10 11:14 1312var a = {n:1};a.x=a={n:2}; a.x ... -
修复 artDialog 双击遮罩层就会自动关闭的bug.... 自己动手....
2012-05-24 21:21 6086今天使用的时候发现 双击遮罩层 就会自动关闭 ,我用的版本是 ... -
jquery 也不给力啊 unbind 你让我情何以堪!
2012-05-09 19:36 1525发现一个问题$a = jQuery('img[src=&q ... -
使用 nodejs 形式的语法来规整 js
2012-04-21 10:20 1990/* * 使用 nodejs 形式的语法来规整 js ... -
注册了2个域名 希望能给nodejs一点集合
2011-06-22 12:37 1330NODEJS-OPEN.COM NODEJS-OPEN.I ... -
css 文本折行
2011-05-12 10:27 8372word-wrap:break-word; overflow: ... -
IE 中document.getElementsByName
2011-05-06 10:40 2450IE 中使用 document.getElementsByNa ... -
新年里 把 自己写的 js基础代码 做个了结..... 死机了吧,悲剧了吧 ... 打不开了吧...编辑器bug出现了吧 ff不能黏贴,复制,换组织就不修正么?
2011-02-11 20:28 1775新年里 把 自己写的 js基础代码 做个了结..... 死机了 ... -
考考你们的JS 我只作对了一半 你们试试
2011-02-11 10:40 2172alert(typeof(NaN)); alert( ... -
为自己的JS库 moogens 增加 facebox 组件
2011-01-17 20:16 2084之前的JS慢慢积累下来慢慢也就自己完善了个,比之前的__ini ... -
高级js教程,转国外一个教程
2010-11-22 10:10 3385http://www.sergiopereira.com/ar ...
相关推荐
本篇主要讨论JS OOP中的包机制以及类创建的方法。 包(Package)机制在许多编程语言中用于组织和管理代码结构,使其更易读、更易维护。在JavaScript中,由于全局作用域可能导致命名冲突,因此引入包机制可以帮助...
JavaScript OOP(面向对象编程)模式是编程领域中一种重要的设计思想,它允许开发者通过类和对象来组织和管理代码,提高代码的可重用性和可维护性。在这个讲解中,我们将深入探讨JavaScript中的OOP模式,特别是如何...
### Java面向对象编程(OOP)中的类定义与对象操作 #### 类的定义与属性声明 在Java中,面向对象编程的基本单位是类。类是一种数据类型,它封装了属性和行为。本示例中定义了一个名为`Student`的类,用于表示学生这...
比如,你可以创建一个名为“IActuator”的接口,规定所有实现此接口的类必须包含启动、停止和状态查询等方法。这样,无论实际使用哪种类型的执行器(如电机或气缸),都可以通过统一的接口进行控制,提高了代码的...
类(Class)是OOP中的基本概念,一个类可以创建多个对象,并且每个对象都有自己的状态和行为。OOP强调封装性、继承性和多态性。 PLC是一种用于工业自动化控制的电子设备,它接收来自传感器的输入信号,通过执行用户...
本课程由知名IT讲师徐培成讲解,旨在深入理解Java中的OOP概念,特别是如何定义类以及创建对象。 1. **面向对象编程(OOP)的基本概念**: - **封装**:隐藏对象的内部细节,只对外提供接口进行操作,以确保数据的...
数据库连接类:TDB 记录集代理类: TRSProxy 页面处理类:TPage 权限控制类:TPrivilege 登录类:TLogin 配置管理类:TConfig 系统函数类:TSystem OOP之ASP应用 原创代码,技术交流,尽量勿用于商业用途,否则不...
继承是OOP中的一个重要特性,允许创建一个新类来继承现有类的属性和方法。JavaScript通过原型链实现了继承。 ##### 3. 封装 封装是指将数据和操作这些数据的方法绑定在一起,并对外隐藏实现细节,只暴露接口供外部...
类是创建对象的模板,定义了一组具有相同属性和行为的对象。继承则是通过一个类(子类)继承另一个类(父类)的特性,实现代码重用和结构扩展。多态性允许不同类型的对象对同一消息作出不同的响应,增强了程序的灵活...
1. 类的定义:展示如何创建一个类,包括属性定义和方法定义。 2. 对象的创建与使用:如何通过new关键字实例化一个对象,并调用其方法。 3. 构造函数:用于初始化对象状态的特殊方法,通常在对象创建时自动调用。 4. ...
1. **类(Class)**:JSoop引入了类的概念,允许开发者定义具有属性和方法的模板。类是创建对象的蓝图,使得代码更加模块化和可重用。 2. **构造函数(Constructor)**:在JSoop中,你可以定义构造函数来初始化新...
JavaScript与OOP js面向对象教程.ppt
**JavaScript面向对象编程(JS OOP)** JavaScript 面向对象编程(Object-Oriented Programming,简称 OOP)是 JavaScript 语言中的一个重要概念,它允许开发者创建复杂、可复用的代码结构。在 "js-oop.rar_control...
除了普通的实例方法外,JavaScript还支持类方法,即定义在构造函数的`prototype`上的方法: ```javascript Light.prototype.turnOff = function() { this.state = false; }; var anOnLight = new Light(); ...
通过这些内容,我们可以了解到Perl OOP的基本框架及其核心概念,包括如何定义类、创建对象、调用方法等。Perl的OOP虽然不像一些现代语言那样具备丰富的内置支持,但通过灵活的语法和强大的功能,仍然可以构建出高效...
JavaScript还提供了`Object.create()`方法来创建一个具有指定原型的新对象,以及`prototype`属性来定义构造函数的原型,以便于继承: ```javascript Person.prototype.sayHello = function() { console.log('Hello...
对象则是类的实例,它们拥有类定义的特性和方法。学习如何定义类,包括构造函数、成员变量和方法。 2. 封装:这是OOP的三大特性之一,通过访问修饰符(public, private, protected)来隐藏内部实现细节,只对外提供...
JavaScript是一门基于原型的语言,它的对象可以直接创建,而无需预先定义类。对象可以通过字面量语法或构造函数创建。每个对象都有一个内部属性`__proto__`,它指向创建该对象的构造函数的原型。 2. **原型链** ...
成员方法是类中定义的函数,它们可以操作对象的状态和行为。成员方法可以分为两种:静态方法和实例方法。静态方法属于类本身,而实例方法属于对象实例。 构造函数 构造函数是类中的一种特殊方法,用于初始化对象的...