zoukankan      html  css  js  c++  java
  • js 类继承extends

    先看例子:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title></title>
    </head>
    <body>
    <script type="text/javascript">
    class map{
    print(data){
    alert(data)
    }
    }
    class child extends map{
    constructor(opt){
    super()
    this.init(opt)
    }
    init(opt){
    this.data=Object.assign({}, opt);
    console.log(this.data.a)
    this.print(this.data.a)
    }
    }
    let data={
    a:'1',
    b:'2'
    }
    new child(data);
    </script>
    </body>
    </html>

    map类里边是一些可复用的方法集中放在一起,它可以衍生出很多子类,它本身是很多子类的交集。例子中的child在实例化的时候传入数据就是先传入constructor,但是里边要有super(),每个方法直接不要有逗号。

    有时候项目中可能不需要继承,仅仅是在一个js文件中生成一个类,然后被其他js文件引用并且new实例化,那么可以写成如下:

    class map{
    constructor(opt){
    this.init(opt)
    }
    init(opt){
    this.data=Object.assign({}, opt);
    console.log(this.data.a)
    alert(this.data.a)
    }
    }
    let data={
    a:'1',
    b:'2'
    }
    new map(data);

     再啰嗦下,有时候一个对象是

    var name = "The Window";

    var object = { 

    name: "My Object",

    getNameFunc: function() {

    var that = this;

    returnfunction() {

    return that.name;

    };

    }

    };

    alert(object.getNameFunc()()); //"My Object"

    这种写法仅仅是定义一个对象,其中属性和方法之间用逗号隔开,如果是定义类的话那么不能用逗号隔开,两者很像,要注意区分。

     
  • 相关阅读:
    进程与线程
    linux网关服务器
    linux硬盘分区和fdisk命令
    MyISAM与InnoDB两者之间区别与选择(转)
    系统吞吐量与QPS/TPS
    linux最大打开文件句柄数
    内存性能测试 Memtester+mbw
    硬盘性能测试
    使用JNA访问WindowsAPI操作Windows窗口元素
    [博客页面装饰]----[人体时钟]插件
  • 原文地址:https://www.cnblogs.com/sweeeper/p/10942220.html
Copyright © 2011-2022 走看看