ES6 Class Module模块化 案例

【前端】--- ES6下篇(带你深入了解ES6语法) ECMAScript。 阅读详情

前言

这篇通过简单说明ES6 Class和Module这个两个成员。并且用这两个成员制造模块化。

Class说明

Class(类)作用对象模块,也就是一个方法集合,像以前的prototype父类一样,也一样可以通过new来实例,用法基本一样。所以只是换种方法写继承而已。我个人觉得Class加入使代码更加直观,更容易理解。

案例

Class简单一个new实例:

ES5

var name = "tom";
var age = "20";

function model(){}
model.prototype = {
    constructor(obj){
        this._config = obj;
        console.log(obj.name+"年龄"+obj.age)
    },
    setValue(key,value){
         this._config[key]=value;
    },
    getValue(key){
        console.log(this._config[key]?this._config[key]:'no have '+key);
    }
}     

var example = new model() //tom年龄20
example.constructor({name,age})
example.setValue("sex","man")
example.getValue("sex") //man
example.getValue("day") //no have day

ES6

const name = "tom";
const age = "20";

class model{
    constructor(obj){/*就是new命令自动跳用方法。一个类必须要有constructor,如果没定义,有默认添加一个空的。*/
        this._config = obj;
        console.log(obj.name+"年龄"+obj.age)
    }
    setValue(key,value){
      this._config[key]=value;
    }
    getValue(key){
      console.log(this._config[key]?this._config[key]:`no have ${key}`);
    }
}

var example = new model({name,age}) //tom年龄20
example.setValue("sex","man")
example.getValue("sex") //man
example.getValue("day") //no have day


Module说明:

Module就是把js做成模块化的一个核心,就像require.js那样导出和加载一个js。可以把一个js分拆出来加载,也可以整体加载。js一直没有模块概念,Module的加入是为了解决模块化的。

export命令

下面分别输出one,two,three这3个变量。
export.js

exprot var one = "1";
exprot var two = "2";
exprot var three = "3";


import命令

通过export命令定义模块的对外接口后,其他js文件通过import命令来加载文件。

import {one,two,three} from "./export"; //选择对象加载
import * from "./export"; //整体加载


一个完整模块构造模型

parent.js

const name = "tom";
const age = "20";

class Parent{
  hw(){
    console.log(`hello world`)
  }
  static obj(){
      console.log('obj')/*表示为静态方法不回呗实例继承,而是直接通过类调用。*/
    }
}  
var parent = new Parent()
parent.hw()//hell world

export{name,age,Parent}


child.js

import {name,age,Parent} from './parent'


class Child extends Parent{
    constructor(obj){/*就是new命令自动跳用方法。一个类必须要有constructor,如果没定义,有默认添加一个空的。*/
        super()//调用父类的constructor()
        this._config = obj;
        console.log(obj.name+"年龄"+obj.age)
    }
    hw(){
      console.log("hw")
    }
    set val(value){
      this._config.name = value;
      console.log(`name=${value}`)
    }
    get val(){
      console.log(this._config.name);
    }
}

Child.obj()//obj 继承父类static方法
var model = new Child({name,age}) //tom年龄20
model.hw()//hw
model.val = "jock"; //name=jock
model.val//jock

附:ES6转换ES2015

http://blog.youkuaiyun.com/rth362147773/article/details/78275551

ES6语法 本文对部分ES6语法做了介绍,以及一些基本的用法标注 阅读详情

相关推荐

ES6中module模块化开发实例浅析

本文实例讲述了ES6中module模块化开发。分享给大家供大家参考,具体如下: 多人开发JavaScript时伴随着命名冲突等问题,先后有了模拟块级作用域、命名空间、模块化开发等方法。 之前,模块化开发一直是由第三方库来模拟的,比较知名的有AMD规范和CMD规范。 两个规范分别对应requirejs和seajs。 而现在,ES6提出了自己的模块化统一标准。 一个ES6的模块是一个包含了js代码的文件。ES6里没有所谓的module关键字,一个模块就是一个普通的脚本文件,除了以下两个区别: 1. ES6中的模块自动开启严格模式。 2. 模块中可以使用import和export。 导入和导出 我们

ES6中的class类详解

目录 一、class简介 二、静态方法和静态属性 2.1 静态方法 2.2 静态属性 三、class继承extends 四、class的取值函数getter和存值函数setter 五、Super关键字 六、注意事项: 一、class简介 传统的JS只有对象的概念,没有class类的概念,因为JS是基于原型的面向对象语言,原型对象特点就是将属性全部共享给新对象。 ES6引入了c...

happy81997的博客 5672

【深大计算机网络】实验三 可靠传输机制 实验报告 附代码

【内附代码】【深大计算机网络】实验三 可靠传输机制 实验报告 附代码

m0_74268508的博客 1653

JS模块化,ESM模块规范的 导入、导出、引用、调用详解

在之前的JS模块化的各种规范 之 CJS、AMD、CMD、UMD、ESM文章中,介绍了关于JS模块化的各种规范的区别和简单使用。由于ESM模块规范也是 ECMAScript2015(ES6)中的规范标准,在日常的Web项目开发、小程序开发、APP开发等都是很常用的,所以本文重点将 ESM模块规范中的 导出、导入、导出、引用、调用等,结合日常开发需求做进一步的介绍。

沐枫 4087

python调用hypermesh调用tcl_TclTk如何调用HyperMesh运行tcl脚本文件

#Tcl/Tk编写界面部分set t [toplevel .tp]focus $tgrab $tset Filename "E:/CAE_Tech/process_files/88/Example.tcl"set Font "Times 12 bold"wm title $t "Call HyperMesh"wm attribute $t -topmost 1wm withdraw $tset t...

weixin_39541681的博客 1599

TSC条码打印机C#例程(tsclib.dll调用) 【转】

//----program.cs using System;using System.Collections.Generic;using System.Windows.Forms; using System.Runtime.InteropServices;public class TSCLIB_DLL{[DllImport("TSCLIB.dll", EntryPoint = "abou...

weixin_33843947的博客 2440

【ES6学习】— (6)class定义类语法与Module模块化简介

ES6中提供了类似于传统面向对象语言的Class类概念来定义类用来创建对象,使得创建对象的方式更加简便。同时也在语言层面提供了Module模块机制来实现模块化,有利于开发大型复杂的项目。本篇笔记主要介绍这两个知识点的相关内容。

艾希射日 1902

UWB定位进阶:如何利用DW1000的CIR数据做NLOS信号识别?

本文深入探讨了如何利用DW1000芯片的信道脉冲响应(CIR)数据进行非视距(NLOS)信号识别,以提升UWB定位精度。通过分析CIR数据的核心价值、预处理方法、特征提取技术以及机器学习模型构建,为研究人员和工程师提供了实用的解决方案,帮助克服室内定位中的NLOS挑战。

weixin_28729205的博客 474

ES6中是如何实现模块化

综上所述,ES6模块化作为现代前端开发的重要特性之一,将在未来继续发挥重要作用并不断发展壮大。随着浏览器支持的广泛化、打包工具的优化、与其他技术栈的整合、动态导入与代码分割的应用、与TypeScript的协同工作、模块化与组件化的融合以及社区支持和生态的发展,ES6模块化将为前端开发者提供更加高效、灵活和强大的模块化开发体验。

Dingdangr的博客 1840

西门子1500T插补控制实战:从硬件组态到轨迹规划

本文详细解析了西门子1500T插补控制的完整实战流程。从硬件组态中正确选择带T的CPU和配置报文105,到创建同步轴与插补器工艺对象,再到使用MC_Interpolator功能块编程实现直线与圆弧插补,并分享了调试技巧与常见问题解决方案,为工程师实现高精度复杂轨迹规划提供清晰指导。

weixin_29228781的博客 423

word多级列表为什么会变成黑块解决思路

今天在写文档时,发现WORD5级的标题都变黑块了,找了度娘的资料,终于解决了。 第一种 1、光标bai放在黑快的右边,按向左的箭头,然后ctrl+shift+s,点击重新应用。 2、点击“定义新的多级列表”(不知道从哪儿找这个按钮的百度下),直接点确定。 3、这里很重要!!!不要直接保存,而是直接关掉word,会提示保存还是不保存,这个地方再点击保存。 第二种 Word2016 使用宏代码修复方法 1.找到视图-宏,打开 查看宏 2.创建宏 3.贴...

霍力强的专栏 8580

12【module的语法】

12【module的语法】

DSelegent的博客 798

YOLOv8剪枝 稀疏训练+slim剪枝测试精度仅掉1.6个点,速度提高10.3fps!

摘要 本文介绍了YOLOv8剪枝方法Slim(Network Slimming),通过L1正则化作用于BN层的缩放因子(γ),自动识别并剪除冗余通道,实现模型轻量化。核心步骤包括:稀疏训练(引入L1正则化)、通道剪枝(按γ阈值裁剪)、微调恢复精度。实验表明,该方法能有效压缩模型大小、减少计算量,且支持通过调整speed_up等超参数控制剪枝强度。移植代码需修改C2F模块以适配剪枝,并配置稀疏训练参数(如reg、sl_epochs)。最终剪枝模型需移除优化器以减小体积,但不支持多卡训练。

FJN110的博客 859

JS高级之ES6+模块化

文章目录十四、es6内容14.1 数组API、正则API、字符串API14.2 模板字符串14.3 解构赋值14.3.1 对象的解构赋值14.3.2 函数参数的解构赋值14.3.3 补充:属性的简写14.4 函数的扩展14.4.1 rest参数14.4.2 箭头函数14.5 对象的扩展14.6 Promise14.6.1 回调地狱:14.6.2 Promise函数基本用法14.6.3 Promis...

王道长的技术博客 7314

K8s(二十二):k8s集群如何部署一个Spring Boot项目(依赖于MySQL和Redis外部服务)

🔴 K8s(二十二):k8s集群如何部署一个Spring Boot项目(依赖于MySQL和Redis外部服务)

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 2万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ES6语法糖(class)、module模块化

ES6语法糖(class)、module模块化 1.class基本用法

weixin_44434872的博客 906

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ES6 class详解 + module详解

传统的JS只有对象的概念,没有class类的概念,因为JS是基于原型的面向对象语言,原型对象特点就是将属性全部共享给新对象。ES6引入了class类这个概念,通过class关键字可以定义类,这就是更符合我们平时所理解的面向对象的语言。 二、静态方法和静态属性 静态方法和静态属性,是使用static关键字的属性和方法 四、注意事项: 1、在类中定义方法时候,不可以给方法加上function关键字,因为JS中构造函数是用function定义的,两个隔开。2、所有方法不要用逗号隔开,否则会报错。1,什

Cc200171的博客 3289

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ES6入门 —— Class和Module

一、ClassES6引入了Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。 // 定义类 class Point() { constructor(x, y) { this.x = x; this.y = y; } toString() { re

Dragon.G 1万+

ES6 import/export/module.exports用法

ES6 import/export用法一、export用法1、输出单个变量2、输出多个变量3、输出函数4、输出别名二、import用法1、导入变量2、导入别名三、export default用法 一、export用法 1、输出单个变量 export var name = 'Mark'; //或者 var name = 'Mark'; export {name} 2、输出多个变量 var name = 'Mark'; var age = 18; export{name, age}; 3、输出函数 exp

黑玫瑰 3703

ES6 模块化

ES6 模块化 在ES6中每一个模块即是一个文件,在文件中定义的变量,常量,函数,对象,等等,在外部是无法访问到的。如果你希望外部可以访问到模块中的内容,就必须使用export来对其进行暴露(导出),而外部则需要使用import(导入)。 export、import用法 我们先来看个例子,首先创建一个Animal.js文件 let Animal = class Animal{ /** * ...

qq_44781628的博客 265

ES6~es13

es6

2502_91195728的博客 1760

模块打包中CommonJS与ES6 Module的导入与导出问题详解

CommonJS CommonJS模块 CommonJS中规定每个文件是一个模块。每个模块是拥有各自的作用域的,各自作用域的变量互不影响。 // calculator.js var name = 'calculator.js'; // index.js var name = 'index.js'; require('./calculator.js'); console.log(name); // index.js 这里可以看到,导入calculator.js并不会覆盖index.js中的name字段 这

卓越无关环境,保持空杯心态——靡不有初,鲜克有终 3939

es6语法

es6语法 let和const命令 let let声明的变量,只在let命令所在的代码块内有效 { let a = 10; var b = 20; } console.log(a); //a is not defined console.log(b); //20 2.不存在遍历提升现象 var命令会发生变量提升现象,即变量可以在声明之前使用,值为undefined let声明的变量一定要在声明后使用,否则会报错 //var的情况 console.log(c);//输出undefine

weixin_62831076的博客 1685

ES6 语法

ES6 语法 本章主要讲解工作中最常用的 ES6 语法,包括 Module Class Promise 等语法,还会介绍使用 babel webpack rollup 来搭建 ES6 编译环境。 ES6 使用 开发环境已经普及使用 浏览器环境却支持不好( 需要开发环境编译 ) 内容很多,重点了解常用语法 面试:开发环境的使用 + 重点语法的掌握 问题 ES6 模块化如何使用,开发环境...

周琛的点滴记录~ 320

ES6 核心

script>//声明一个对象name: "终极一班",stus: ['knight'],//索引变量//return {//下标自增index++;//返回结果}else{//遍历这个对象</script>ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。

2301_80441013的博客 768

ES6--Class、Module及常用特性

写到这里,ES6的所有语法基本已全部描述,有彩蛋、也有单纯的语法糖。里面大多数的语法也可用通过ES5去shim(除了Proxy)。在Node6+以上,几乎所有的ES6语法被支持,前端可通过Babel6工具进行转换。在使用ES6过程中,有几个很爽的小特性:(1)设置对象变量键值的语法(2)模板字符串(3)find/findIndex(4)扩展运算符(4)默认参数值

李刚的学习专栏 3736
上一篇: MUI+H5plus+HBuilder开发app(android,ios)介绍
下一篇: js小工具篇-验证
JarunWang
博客等级 码龄18年 57粉丝 61原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值