模块化编程
模块化是对代码进行拆分,以便于重用。与Java中的dopo一样,要使用包,必须先导入包。JS没有软件包的概念。模块。
模块功能主要包括export和import包含两个命令。
1、规定模块外部接口的export命令;
2、import命令,获取其他模块提供的功能;
代码方案:
Common.js
//定义对象
Const utils={
总计(a,b) {
return a b;
}
}
//批量导出
Export {utils}
Common2.js
//定义对象
Export const utils2={
总计(a,b) {
return a b;
}
}common3.js
//定义对象
Export default{
总计(a,b) {
return a b;
}
}u
//export还可以导出基本类型变量、函数、数组、对象等。
Var userId=1234
Var userName=' jiaoge
//函数
Functionadduser (userid、username) {
con(' add user()' userid ' ' username);
}
Export {userid,username,adduser} demo.js
//导入
导入实用程序from '
“Import {userid,username,adduser} from”。/u '
//调用
U(1,2);
con(' userId=' userId);
con(' userName=' userName);
AddUser(2345,' Sunshuao ');
//名字必须正确
导入实用程序2 from '
//调用
U(3,4);
//default默认值
" Import common from "。
//调用
Common.sum(5,6);杠铃
公式:Babel是JavaScript编译器,Babel是将ES6代码转换为ES5代码的常用编解码器。换句话说,您不必担心现有环境是否受支持,而是将程序转换为ES6,成为ES5程序。
安装:NPM install - global babel-cli
检查安装是否成功:babel - version
Babel提供了相应的转换器。
1、将babel-preset-es2015、es2015版本的js转换为es5。
2、将babel-preset-es2016、es2016版本的js转换为es5。
3、将babel-preset-es2017、es2017版本的js转换为es5。
安装:NPM install-save-dev babel-preset-es 2015
安装:NPM install-save-dev babel-preset-es 2016
方案:
Demo.js(资料来源:复制参考资料)
Class Animal {
Constructor(){
='animal '
}
Says(say){
Con(' says' say)
}
}
Let animal=new Animal()
animal . says(' hello ')
Class Cat extends Animal {
Constructor(){
Super()
='cat猫'
}
}
Let cat=new Cat()
Cat.says('hello ')会发出转换指令(cmd)
babeldemo . js-presets es 2015-o demo _ e
转换的内容:
' use strict '
var _ create class=function(){ function define properties(target,props){ for(var I=0;I;I){ var descriptor=props[I];De=de | | falseDe=真;if(' value ' in descriptor)de=true;Object.defineproperty (target、de、descriptor);}} return function (constructor、protoprops、static props){ If(protoprops)define propertie、protopropropertieReturn Constructor} }();
function _ possibleconstructorreturn(self,call) {if(!self){ throw new reference error(' this hasn ' t been initialised-super()hasn ' t been called);} return call(type of call===' object ' | | type of call==' function ')?科尔:自助;}
Function _ inherits (subclass,super class){ if(type of super class!=='function' superClass!==null){ throw new typeerror(' super expression must either be null or a function,not ' type of super class);}=object.create (superclass,{ constructor : { value : sub class,enumerable 3360 false,writable 3330 If)Object.setprototypeof (subclass,super class):=super class;}
function _ class call check(instance,constructor) {if(!(建筑实例){ throw new typeerror(' cannot call a class as a function ');}}
Var Animal=function () {
Function Animal() {
_classCallCheck(this,Animal);
=' animal
}
_createClass(Animal,[{
身高:' says '
Value: function says(say) {
con(' says ' say);
}
}]);
Return Animal
}();
var Animal=new Animal();
animal . says(' hello ');
Var Cat=function (_Animal) {
_inherits(Cat,_ Animal);
Function Cat() {
_classCallCheck(this,Cat);
var _ this=_ possibleconstructorreturn(this,| | object.getprototypeof (cat))。call (this)
_='cat猫'
Return _ this
}
Return Cat
}(Animal);
var Cat=new Cat();
cat . says(' hello ');
启动浏览器:
Demo.html
!DOCTYPE html
Html lang='en '
头(电影)
meta charset=' utf-8 '
元名称=' viewport ' content=' width=device-width,initial-scale=1.0 '
meta http-equiv=' x-ua-compatible ' content=' ie=edge '
标题es 2015/标题
/head
菩提
Scriptsrc=' demo _ e'/脚本
/body
/html