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方法进入的时候声明,不然会报错。

--------------------------------继续完善此原型中-----------------------------------------------

时间: 2024-08-29 11:01:37

ECMAScript6 中 类的封装与继承的相关文章

php函数、类和对象以及类的封装、继承、类的静态方法、静态属性

1.函数     php内置函数可以直接使用,如果没有安装php扩展即可     自定义函数 //函数function 函数名 function dump($var = null){ //支出默认参数值 echo '<pre/>'; var_dump($var); } 2.类(class)和对象( new Obj) <?php //定义一个人的类,现在还不是对象 class Person { //私有属性 private $eye = '大眼睛'; private $mouth = '小

Java——类的封装、继承与多态

一.类和对象 1.类 类是数据以及对数据的一组操作的封装体. 类声明的格式: 类声明 { 成员变量的声明: 成员方法的声明及实现: } 1.1 声明类 [修饰符] class 类<泛型> [extends 父类] [implements 接口列表] <泛型>——类的参数,带有参数的类成为泛型类. 1.2 声明成员变量和成员方法 成员变量声明格式:[修饰符] 数据类型 变量[=表达式]{,变量[=表达式]}: 成员方法——用来描述对成员变量进行的操作,格式:[修饰符] 返回值类型 方

Python 类 类的封装,继承 ,多继承

__author__ = '12711'#-*- coding:utf-8 -*-# class Animal(object):# name='xxx'# def __init__(self,name,age):# self.name=name# self.age=age## def eat(self):# print("%s开始吃东西了"%(self.name))## def seelp(self):# print("%s开始睡觉了"%(self.name))##

PHP类的封装与继承详解

封装 把成员方法和成员属性封装到类中,隐藏属性和方法实现的细节,通过public.protected.private等限定类成员的访问权限,数据被保护在内部,只通过被授权的成员方法才可以操作,尽可能的对成员进行封装. public:方法或者属性在任何作用域下都可以访问到,而且是默认的,如果没有为一个属性或方法指定访问修饰符,它将是public.protected:本类和子类可以访问,外部对象不可以调用.private:只能在本类访问,子类与外部对象都不可能调用.经过private标记的方法或者属

php类的封装、继承和多态的简单理解

.面象对向的三大特点:封装性.继承性.多态性 首先简单理解一下抽象: 我们在前面定义一个类的时候,实际上就是把一类事物共有的属性和行为提取出来,形成一个物理模型(模版),这种研究问题的方法称为抽象 一.封装性  封装就是把抽取出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有被授权的操作(方法)才能对数据进行操作.  php提供了三种访问控制修饰符  public 表示全局,本类内部,类外部,子类都可以访问  protected 表示受保护的,只有本类或子类可以访问  pr

JS面向对象 关于类的封装、继承、多态

一.封装:把实现一个功能的代码放在一个函数中封装起来,以后再想实现这个功能的时候,我们不需要重新的编写代码了,只需要执行对应的函数即可,我们把这种机制就称之为"函数的封装" -->低耦合高内聚:减少页面中的冗余代码,提高代码的重复使用率 二.多态 后台语言[java.C#.ASP.net.php...]中的多态:重载.重写重载(Reload):多个方法,方法名相同,参数的个数或者参数的类型不一样重写(Rewrite):子类重写父类的方法 JS严格意义上不存在重载,后面的方法会把前

C#学习记录3上——类的封装,继承,多态

OOP面向对象的三大特点:封装(encapsulation),继承(inheritance),多态(encapsulation) 和JAVA与C++一样,C#也是OOP语言.并且,C#对数据的封装要比C++更好.另外,在C++里面可能习惯从main函数开始程序,类是作为主函数的一部分而存在的.而C#里面,所有的所有都是在某个类中进行. 这里还是说C#较其他语言不一样的地方. 有关类Class 1.方法参数Arguments和传递参数Parameters 首先说一下这两个词的区别.其实都是指参数,

python第三十一天-----类的封装、继承,多态.....

封装 封装最好理解了.封装是面向对象的特征之一,是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. 1 class dog(object): 2 nationality='ch'#公有属性 3 def __init__(self,name,food,leven):#构造函数,方法,初始化方法 4 self.name=name #实例指针,指向 属性 对象成员 5 self.food=food 6 sel

第6节 类的封装和继承

一.封装 封装的概念:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的访问和操作. 封装的2个大致原则:1)把尽可能多的东西隐藏起来,对外提供便捷的接口2)把所有的属性隐藏起来 封装的实现:◆JAVA定义了4种访问权限:public (公有的).protected(保护的).private(私有的)和默认的◆封装步骤1)修改属性的可见性:设为private,防止错误修改2)创建getter/setter方法:用于属性的读写3)在getter/sette