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 相关文章推荐
提高 DHTML 页面性能
Dec 25 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
Mar 18 Javascript
JavaScript访问CSS属性的几种方式介绍
Jul 21 Javascript
使用jQuery实现验证上传图片的格式与大小
Dec 03 Javascript
node中socket.io的事件使用详解
Dec 15 Javascript
浅谈javascript构造函数与实例化对象
Jun 22 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
Jul 31 Javascript
javascript基础语法学习笔记
Jan 04 Javascript
jQuery中的Deferred和promise 的区别
Apr 03 Javascript
jquery动态创建div与input的实例代码
Oct 12 Javascript
如何将你的AngularJS1.x应用迁移至React的方法
Feb 01 Javascript
Vue使用mixin分发组件的可复用功能
Sep 01 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 可阅读随机字符串代码
2010/05/26 PHP
php下目前为目最全的CURL中文说明
2010/08/01 PHP
php中用于检测一个地理IP地址是否可用的代码
2012/02/19 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
2014/07/19 PHP
详解Yii2 定制表单输入字段的标签和样式
2017/01/04 PHP
vs2003 js文件编码问题的解决方法
2010/03/20 Javascript
iframe异步加载实现点击左边菜单加载右边内容实例讲解
2013/03/04 Javascript
jquery自定义属性(类型/属性值)
2013/05/21 Javascript
编写高效jQuery代码的4个原则和5个技巧
2014/04/24 Javascript
jQuery的one()方法用法实例
2015/01/19 Javascript
使用js复制链接中的部分文字的方法
2015/07/30 Javascript
浅谈Javascript数组(推荐)
2016/05/17 Javascript
jquery中live()方法和bind()方法区别分析
2016/06/23 Javascript
Windows环境下npm install 报错: operation not permitted, rename的解决方法
2016/09/26 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
修改Vue打包后的默认文件名操作
2020/08/12 Javascript
vue实现登录功能
2020/12/31 Vue.js
解决pandas .to_excel不覆盖已有sheet的问题
2018/12/10 Python
Python元组常见操作示例
2019/02/19 Python
Python3实现的判断回文链表算法示例
2019/03/08 Python
Python字符串对象实现原理详解
2019/07/01 Python
利用python在大量数据文件下删除某一行的例子
2019/08/21 Python
Python面向对象原理与基础语法详解
2020/01/02 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
Pyinstaller打包Scrapy项目的实现步骤
2020/09/22 Python
HTML5+Canvas+CSS3实现齐天大圣孙悟空腾云驾雾效果
2016/04/26 HTML / CSS
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
Sephora丝芙兰马来西亚官方网站:国际化妆品购物
2018/03/15 全球购物
超市促销活动总结
2014/07/01 职场文书
社区党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
基层党组织整改方案
2014/10/25 职场文书
2014年教研组工作总结
2014/11/26 职场文书
学习雷锋精神活动总结
2015/02/06 职场文书
教师文明餐桌光盘行动倡议书
2015/04/28 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书