Javascript类定义语法,私有成员、受保护成员、静态成员等介绍


Posted in Javascript onDecember 08, 2011

其实通俗的讲类就是对象的模板,为了增强JS的OO特性,受mootoos框架启发我们可以使用一个JSON对象来描述这个对象的模板。在这个模板中我们可以模拟实现私有成员,受保护成员,静态成员。
这是一个在JS中模拟的类定义语法,代码中Class是一个自定义函数,它接受两个参数,第一个参数是类名、第二个参数是一个JSON用来一个对象的模板。在这个JSON对象中其中字段 "extend",,"initialize","static" 为一些预定义关键字,所表示的意义与基于类的传统OO语言相似。字段accessabe用来描述一个对象成员的可访问性,取值为("private","protected","public")在Class函数中会对这些关键字进行特殊处理,使其所修饰的成员具有相应的访问权限。

Class("Person" ,{ 
//继承 
extend: Animal, 
//构造函数 
initialize:function(name,sex){ 
this.name = name; 
this.sex = sex; 
Person.count++; 
}, 
//静态成员 
static:{ 
count: { 
accessabe:"private", 
value: "" 
} 
}, 
//实例成员 
age: {//私有属性成员 
accessabe:"private", 
value:0 
}, 
//公用属性 
name: { 
accessabe:"public", 
value:"" 
}, 
sex:{ 
accessabe:"public", 
value: "" 
}, 
//方法 
sleep: {//受保护方法 
accessabe:"protected", 
value: function(){ 
} 
}, 
say: {//公用方法 
accessabe:"public", 
value: function(){ 
retun (this.age-1) 
} 
} 
}); 
//调用 
var xiaom = new Person("小明","男"); 
xiaom.age //私有属性不能访问 
xiaom.sleep() //受保护方法不能访问 
xiaom.say() //公用方法可以访问
Javascript 相关文章推荐
理解Javascript_12_执行模型浅析
Oct 18 Javascript
在chrome浏览器中,防止input[text]和textarea在聚焦时出现黄色边框的解决方法
May 24 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
Dec 09 Javascript
js几秒以后倒计时跳转示例
Dec 26 Javascript
详解angular中的作用域及继承
May 31 Javascript
微信小程序实现皮肤功能(夜间模式)
Jun 18 Javascript
微信小程序 蓝牙的实现实例代码
Jun 27 Javascript
详解node-ccap模块生成captcha验证码
Jul 01 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
Dec 08 Javascript
详解React+Koa实现服务端渲染(SSR)
May 23 Javascript
Vux+Axios拦截器增加loading的问题及实现方法
Nov 08 Javascript
原生javascript单例模式的应用实例分析
Feb 23 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
Dec 08 #Javascript
js中document.getElementByid、document.all和document.layers区分介绍
Dec 08 #Javascript
基于jquery的代码显示区域自动拉长效果
Dec 07 #Javascript
5个javascript的数字格式化函数分享
Dec 07 #Javascript
TimergliderJS 一个基于jQuery的时间轴插件
Dec 07 #Javascript
autoPlay 基于jquery的图片自动播放效果
Dec 07 #Javascript
浅析Prototype的模板类 Template
Dec 07 #Javascript
You might like
用来给图片加水印的PHP类
2008/04/09 PHP
php提取字符串中网站url地址的方法
2014/12/03 PHP
php控制文件下载速度的方法
2015/03/24 PHP
PHP内置加密函数详解
2016/11/20 PHP
PHP常见数组排序方法小结
2018/08/20 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
2012/07/17 Javascript
JavaScript中的闭包介绍
2015/03/15 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
javascript中的五种基本数据类型
2015/08/26 Javascript
编写高性能Javascript代码的N条建议
2015/10/12 Javascript
jQuery获得字体颜色16位码的方法
2016/02/20 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
2016/08/05 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
2016/12/21 Javascript
基于JS设计12306登录页面
2016/12/28 Javascript
JS获取短信验证码倒计时的实现代码
2017/05/22 Javascript
Vue2.0 从零开始_环境搭建操作步骤
2017/06/14 Javascript
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
js 实现watch监听数据变化的代码
2019/10/13 Javascript
如何用itertools解决无序排列组合的问题
2017/05/18 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
Python编程实现蚁群算法详解
2017/11/13 Python
Python 元类实例解析
2018/04/04 Python
python实现按关键字筛选日志文件
2019/12/24 Python
Python能做什么
2020/06/02 Python
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
精神文明单位申报材料
2014/05/02 职场文书
廉洁家庭事迹材料
2014/05/15 职场文书
爱心捐书活动总结
2014/07/05 职场文书
教师辞职书范文
2015/02/26 职场文书
什么是创业计划书?什么是商业计划书?这里一一解答
2019/07/12 职场文书
python实现简单石头剪刀布游戏
2021/10/24 Python
java版 简单三子棋游戏
2022/05/04 Java/Android
python实现商品进销存管理系统
2022/05/30 Python