zoukankan      html  css  js  c++  java
  • Javascript类定义语法,私有成员、受保护成员、静态成员等

        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() //公用方法可以访问
    


  • 相关阅读:
    金额数字每隔3位用逗号区分
    tomcat结合shiro无文件webshell的技术研究以及检测方法
    python使用p12个人证书发送S/MIME加密,签名邮件
    CVE-2020-9484 tomcat session反序列化漏洞分析与复现
    Apache CommonCollection Gadget几种特殊的玩法
    weblogic t3协议回显穿透nat思路
    weblogic T3/iiop 回显分析
    ysoserial gadget之DNSURL gadget分析及实战利用
    CVE-2020-2555 weblogic 反序列化gadget 复现
    通达OA最新RCE漏洞分析
  • 原文地址:https://www.cnblogs.com/rentj1/p/2281245.html
Copyright © 2011-2022 走看看