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 相关文章推荐
html+javascript实现可拖动可提交的弹出层对话框效果
Aug 05 Javascript
jquery+json实现数据列表分页示例代码
Nov 15 Javascript
jQuery中prev()方法用法实例
Jan 08 Javascript
javascript通过元素id和name直接取得元素的方法
Apr 28 Javascript
JS实现仿微博可关闭弹出层效果
Sep 21 Javascript
javascript实现的猜数小游戏完整实例代码
May 10 Javascript
常用jQuery选择器汇总
Feb 02 Javascript
JavaScript实现瀑布流以及加载效果
Feb 11 Javascript
jQuery实现用户输入自动完成功能
Feb 13 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
Jul 26 Javascript
原生js实现日期选择插件
May 21 Javascript
Object.keys() 和 Object.getOwnPropertyNames() 的区别详解
May 21 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常用字符串比较函数实例汇总
2014/11/24 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
laravel config文件配置全局变量的例子
2019/10/13 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
2019/10/15 PHP
php适配器模式简单应用示例
2019/10/23 PHP
JavaScript高级程序设计 DOM学习笔记
2011/09/10 Javascript
jquer之ajaxQueue简单实现代码
2011/09/15 Javascript
ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
2012/02/03 Javascript
jsp网页搜索结果中实现选中一行使其高亮
2014/02/17 Javascript
仿百度换肤功能的简单实例代码
2016/07/11 Javascript
第一次记录Bootstrap table学习笔记(1)
2017/05/18 Javascript
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
微信小程序url传参写变量的方法
2018/08/09 Javascript
解决layui轮播图有数据不显示的情况
2019/09/16 Javascript
React Hooks 实现和由来以及解决的问题详解
2020/01/17 Javascript
vue组件创建的三种方式小结
2020/02/03 Javascript
JavaScript装饰者模式原理与用法实例详解
2020/03/09 Javascript
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
2020/05/19 jQuery
在Django的视图中使用数据库查询的方法
2015/07/16 Python
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
Python实现的多线程同步与互斥锁功能示例
2017/11/30 Python
Python使用functools实现注解同步方法
2018/02/06 Python
win7 x64系统中安装Scrapy的方法
2018/11/18 Python
用Python开发app后端有优势吗
2020/06/29 Python
Python数据可视化实现漏斗图过程图解
2020/07/20 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
详解Pycharm安装及Django安装配置指南
2020/09/15 Python
Python __slots__的使用方法
2020/11/15 Python
基于Python的接口自动化读写excel文件的方法
2021/01/15 Python
浅谈css3新单位vw、vh、vmin、vmax的使用详解
2017/12/01 HTML / CSS
HTML中使用SVG与SVG预定义形状元素介绍
2013/06/28 HTML / CSS
雅诗兰黛旗下走天然植物路线的彩妆品牌:Prescriptives
2016/08/14 全球购物
Cocopanda波兰:购买化妆品、护肤品、护发和香水
2020/05/25 全球购物
餐饮主管岗位职责
2013/12/10 职场文书
2014年幼儿园园务工作总结
2014/12/05 职场文书
springboot中的pom文件 project报错问题
2022/01/18 Java/Android