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 相关文章推荐
利用JQuery+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
Oct 24 Javascript
仅IE支持clearAttributes/mergeAttributes方法使用介绍
May 04 Javascript
javascript+xml实现简单图片轮换(只支持IE)
Dec 23 Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
Jun 20 Javascript
BootStrap tooltip提示框使用小结
Oct 26 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
Jan 14 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
Aug 14 Javascript
Vue中的ref作用详解(实现DOM的联动操作)
Aug 21 Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
Jan 16 Javascript
基于vue循环列表时点击跳转页面的方法
Aug 31 Javascript
webstorm+vue初始化项目的方法
Oct 18 Javascript
配置eslint规范项目代码风格
Mar 11 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中的Cannot modify header information 问题
2013/08/12 PHP
PHP 输出URL的快捷方式示例代码
2013/09/22 PHP
php中的字符编码转换函数用法示例
2014/10/20 PHP
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
2017/06/07 PHP
js函数排序的实例代码
2013/07/01 Javascript
js处理自己不能定义二维数组的方法详解
2014/03/03 Javascript
jQuery使用之标记元素属性用法实例
2015/01/19 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
2015/02/02 Javascript
三种AngularJS中获取数据源的方式
2016/02/02 Javascript
jQuery插件制作的实例教程
2016/05/16 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
2016/11/03 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
2017/02/28 Javascript
vue.js加载新的内容(实例代码)
2017/06/01 Javascript
js回文数的4种判断方法示例
2019/06/04 Javascript
Vue3 源码导读(推荐)
2019/10/14 Javascript
[11:33]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第二场
2018/04/06 DOTA
使用Python编写vim插件的简单示例
2015/04/17 Python
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
python 截取 取出一部分的字符串方法
2017/03/01 Python
Python 的类、继承和多态详解
2017/07/16 Python
Python实现的求解最小公倍数算法示例
2018/05/03 Python
python 字典中取值的两种方法小结
2018/08/02 Python
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
python3.6 如何将list存入txt后再读出list的方法
2019/07/02 Python
python中的TCP(传输控制协议)用法实例分析
2019/11/15 Python
Python 面向对象部分知识点小结
2020/03/09 Python
一些PHP的面试题
2015/05/06 面试题
自考毕业自我鉴定范文
2013/10/27 职场文书
人民教师求职自荐信
2014/03/12 职场文书
关于感恩的演讲稿200字
2014/08/26 职场文书
领导干部个人对照检查材料(群众路线)
2014/09/26 职场文书
入党自传范文2015
2015/06/26 职场文书
Nginx配置https原理及实现过程详解
2021/03/31 Servers
分享五个Node.js开发的优秀实践 
2022/04/07 NodeJs