ECMAScript6 中 类的封装与继承
ECMASCRIPT6中实现了class关键字,这样使我们更容易也更形象的进行类的操作
<script type="text/javascript">
class OFunction{
constructor(args){
}
setValue(val){
if(val !== undefined && val != null){
return val;
}else{
return '';
}
}
}
class Box extends OFunction{
constructor(args){
super(args);
this.width = super.setValue(args.width) !== '' ? this.args.width : '120';
this.height = super.setValue(args.height) !== '' ? this.args.height : '60';
}
}
class Popup extends Box{
constructor(args){
super(args);
this.args = super.setValue(args) !=='' ? args : {} ;
this.position = super.setValue(args.position) !== '' ? this.args.position : 'center'; //the position of this popup;
this.backgroundColor = super.setValue(args.bg) !== '' ? this.args.bg : 'rgba(0,0,0,.6)'; //the background-color of this popup;
}
getPosition(){
return this.position;
}
getBackgroundColor(){
return this.backgroundColor + this.more();
}
} var args={'position':'left','bg':'red'};
var p=new Popup(args);
console.log(p.getBackgroundColor())
</script>
上面代码是我用来封装弹出框的一个原型(初级版)
OFunction是用来封装常用方法的方法类,这里面封装了setValue方法,用来判断参数是否为空或未定义
Box类是用来定义盒子模型,因为盒子模型既可以作为popup的父类,也可以被其他类集成。Box继承了OFunction类,这样可以获得OFucntion里面所有的方法和属性(当然是公有的,目前ECMASCRIPT6中static关键字还没有实现,可以借助以前定义私有变量和方法的方法来定义私有属性)。
Popup类继承自Box类,可以继承到Box类的所有属性和方法,同时获得OFunction类的所有方法属性。
constructor方法相当于C++/Java/Python等面向对象语言中的__init__()方法,在类实例化的时候执行
这里面需要注意的是super关键字,在使用extends继承时,需要在construtor中声明super,同时通过super关键字获取到父类中的方法和属性,super关键字需要在constructor方法进入的时候声明,不然会报错。
--------------------------------继续完善此原型中-----------------------------------------------
ECMAScript6 中 类的封装与继承的更多相关文章
- java中关于类的封装与继承,this、super关键字的使用
原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/5454849.html. this关键字: this代表当前对象,它有以下几种用途: 1.本类 ...
- Java—类的封装、继承与多态
一.类和对象 1.类 类是数据以及对数据的一组操作的封装体. 类声明的格式: 类声明 { 成员变量的声明: 成员方法的声明及实现: } 1.1 声明类 [修饰符] class 类<泛型> ...
- php函数、类和对象以及类的封装、继承、类的静态方法、静态属性
1.函数 php内置函数可以直接使用,如果没有安装php扩展即可 自定义函数 //函数function 函数名 function dump($var = null){ //支出默认参数 ...
- java类的封装、继承、多态
一.封装(encapsulation) 封装性就是把类(对象)的属性和行为结合成一个独立的相同单位,并尽可能隐蔽类(对象)的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生联系.封装的特 ...
- 对Java中多态,封装,继承的认识(重要)
一.Java面向对象编程有三大特性:封装,继承,多态 在了解多态之前我觉得应该先了解一下 ...
- c++的类的封装/继承/多态的简单介绍
本篇文章仅仅从很表层来介绍一个C++语言中的类,包括什么是类,类的封装性/继承性和多态性.高手直接跳过吧,看了浪费时间,新手或者想温习一下的可以浏览看看. 1. 什么是类? 到底什么是类(class) ...
- IT第十八天 - 类的封装、继承、重载、上周总结★★★
IT第十八天 上午 封装 1.关键字this,是表示该类在实例化时的对象,即this.表示为该对象的属性 2.类的数据保护,set.get方法的写法规则,为了之后的反射机制的读取数据,set方法中对于 ...
- Java面向对象 第3节 类的封装和继承
一.封装 封装的概念:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的访问和操作. 封装的2个大致原则:1)把尽可能多的东西隐藏起来,对外提供便捷的接口 ...
- python第三十一天-----类的封装、继承,多态.....
封装 封装最好理解了.封装是面向对象的特征之一,是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. cla ...
随机推荐
- systemctl命令用法详解
systemctl命令用法详解系统环境:Fedora 16binpath:/bin/systemctlpackage:systemd-units systemctl enable httpd.serv ...
- 制作简单的2D物理引擎(零)
最近发现了Github上的开源物理引擎项目Matter.js,对它很感兴趣,发现源码并不算长,算上注释大约1万行左右,值得剖析一番.Matter.js实现一个最小化的2D物理引擎,性能不错,故打算用C ...
- 把word文档中的所有图片导出
把word文档中的所有图片导出 end
- spark示例
1)java(App.java) package com.ejiajie.bi.hello; import org.apache.spark.api.java.JavaSparkContext; im ...
- Can't connect to MySQL server on '127.0.0.1' (111)
[root@localhost ~]# service mysqld statusmysqld 已停 (1)查看MySQL 服务是否已经开启: service mysqld status (2)启动 ...
- linux 网卡问题 Device eth0 does not seem to be present,delaying initialization.
Device eth0 does not seem to be present,delaying initialization. 网上搜索后才发现原因所在:原来vmware在复制了虚拟机后会自动生成一 ...
- 推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler定时器
在C#WINFORM或者是ASP.NET的WEB应用程序中,根据各种定时任务的需求,比如:每天的数据统计,每小时刷新系统缓存等等,这个时候我们得应用到定时器这个东东. .NET Framework有自 ...
- 移动端WEB开发备忘录
META相关 1. 添加到主屏后的标题(IOS) <meta name="apple-mobile-web-app-title" content="标题" ...
- Provisioning Services 7.6 入门到精通系列之一:PVS前期规划
1. Provisioning Services 产品概述 Provisioning Services (简称PVS)采用了一种与传统映像解决方案截然不同的方法,从根本上改变了硬件与依托硬件而运行的 ...
- 多个radiobutton选定一个
asp.net中怎么判断其中一个radiobutton被选中后登录的是一个窗体,另一个被选中后登录的是另一个窗体. 页面设置两按钮的GroupName为同一组值: <asp:RadioButto ...