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 相关文章推荐
非常不错的功能强大代码简单的管理菜单美化版
Jul 09 Javascript
如何让div span等元素能响应键盘事件操作指南
Nov 13 Javascript
js 触发select onchange事件代码
Mar 20 Javascript
JQuery中上下文选择器实现方法
May 18 Javascript
jQuery获取上传文件的名称的正则表达式
May 21 Javascript
js闭包引起的事件注册问题介绍
Mar 29 Javascript
js实现移动端微信页面禁止字体放大
Feb 16 Javascript
使用JavaScriptCore实现OC和JS交互详解
Mar 28 Javascript
Vue 过滤器filters及基本用法
Dec 26 Javascript
Vue实现图书管理小案例
Dec 03 Vue.js
JavaScript实现4位随机验证码的生成
Jan 28 Javascript
Vue提供的三种调试方式你知道吗
Jan 18 Vue.js
扩展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
thinkPHP导出csv文件及用表格输出excel的方法
2015/12/30 PHP
PHP实现文件上传与下载
2020/08/28 PHP
PHPstorm激活码2020年5月13日亲测有效
2020/09/17 PHP
Apply an AutoFormat to an Excel Spreadsheet
2007/06/12 Javascript
Javascript学习笔记5 类和对象
2010/01/11 Javascript
推荐40款强大的 jQuery 导航插件和教程(上篇)
2012/09/14 Javascript
JavaScript表达式:URL 协议介绍
2013/03/10 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
2014/11/13 Javascript
node.js中的path.resolve方法使用说明
2014/12/08 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
2016/05/31 Javascript
jquery点击切换背景色的简单实例
2016/08/25 Javascript
javascript的函数劫持浅析
2016/09/26 Javascript
谈谈JavaScript数组常用方法总结
2017/01/24 Javascript
VueJS事件处理器v-on的使用方法
2017/09/27 Javascript
vue2中的keep-alive使用总结及注意事项
2017/12/21 Javascript
解决jquery的ajax调取后端数据成功却渲染失败的问题
2018/08/08 jQuery
Vue.js组件间通信方式总结【推荐】
2018/11/23 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
2018/12/30 Javascript
一文快速详解前端框架 Vue 最强大的功能
2019/05/21 Javascript
vue实现自定义H5视频播放器的方法步骤
2019/07/01 Javascript
Node.js中console.log()输出彩色字体的方法示例
2019/12/01 Javascript
详解JavaScript之ES5的继承
2020/07/08 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
Python利用scapy实现ARP欺骗的方法
2019/07/23 Python
Django跨域资源共享问题(推荐)
2020/03/09 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
女性时尚网购:Chic Me
2019/07/30 全球购物
美国家居装饰购物网站:Amanda Lindroth
2020/03/25 全球购物
可贵的沉默教学反思
2014/02/06 职场文书
《玩具柜台前的孩子》教学反思
2014/02/13 职场文书
生日宴会策划方案
2014/06/03 职场文书
朋友离别感言
2015/08/04 职场文书
2015年度工程师评职称工作总结
2015/10/14 职场文书
求职信如何撰写?
2019/05/22 职场文书