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

 更新时间:2011年12月08日 23:18:14   作者:  
JS只是一门支持面向对象编程的语言,通过OO可以让我们的代码组织更加人性化。可是与传统基与类的面向对编程语言不同它没有类概念并且没成员访问修饰符。这多少会给我们编程工作会带来一些束缚
其实通俗的讲类就是对象的模板,为了增强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() //公用方法可以访问

相关文章

  • js style动态设置table高度

    js style动态设置table高度

    设置table高度想必大家都会,直接在table标签中设置下不就行了吗?这是静态的,如果要动态设置你会吗?下面的实例将教会大家
    2014-10-10
  • 微信小程序getLocation 需要在app.json中声明permission字段

    微信小程序getLocation 需要在app.json中声明permission字段

    这篇文章主要介绍了微信小程序getLocation 需要在app.json中声明permission字段,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • 使用php的mail()函数实现发送邮件功能

    使用php的mail()函数实现发送邮件功能

    php中的mail()函数允许您从脚本中直接发送电子邮件,下面这篇文章主要给大家介绍了关于如何使用php的mail()函数实现发送邮件功能的相关资料,需要的朋友可以参考下
    2021-06-06
  • Javascript小技能总结(推荐)

    Javascript小技能总结(推荐)

    本文是小编日常收集整理的有个js中的一些小技能,非常实用,值得推荐给大家,感兴趣的朋友快来收藏吧
    2016-06-06
  • javascript cookie的基本操作(添加和删除)

    javascript cookie的基本操作(添加和删除)

    这篇文章主要介绍了javascript cookie的基本操作的相关资料,这里对Cookie的操作进行了详细介绍包括获取,新建,设置有效期,添加和删除等,需要的朋友可以参考下
    2017-07-07
  • JS中向对象中添加对象的3种方法

    JS中向对象中添加对象的3种方法

    这篇文章主要给大家介绍了关于JS中向对象中添加对象的3种方法,在JavaScript中对象可以通过两种方法添加对象,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • 解析offsetHeight,clientHeight,scrollHeight之间的区别

    解析offsetHeight,clientHeight,scrollHeight之间的区别

    这篇文章主要是对offsetHeight,clientHeight,scrollHeight之间的区别进行了详细介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • 使用webpack4编译并压缩ES6代码的方法示例

    使用webpack4编译并压缩ES6代码的方法示例

    这篇文章主要介绍了使用webpack4编译并压缩ES6代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 小程序实现登录功能

    小程序实现登录功能

    这篇文章主要为大家详细介绍了小程序实现登录功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-09-09
  • js实现鼠标悬停图片上时滚动文字说明的方法

    js实现鼠标悬停图片上时滚动文字说明的方法

    这篇文章主要介绍了js实现鼠标悬停图片上时滚动文字说明的方法,涉及js操作鼠标事件的使用技巧,需要的朋友可以参考下
    2015-02-02

最新评论