Babel编译:类
编译前
class Fruit{
static nutrition = "vitamin"
static plant(){
console.log('种果树');
}
name;
constructor(name){
this.name = name;
}
hello(){
console.log(this.name);
}
}
编译后
"use strict"; // 是否是实例
function _instanceof(left, right) {
// 支持Symbol时,right可以是函数/对象:Symbol.hasInstance指向一个内部方法。
if (
right != null &&
typeof Symbol !== "undefined" &&
right[Symbol.hasInstance]
) {
return !!right[Symbol.hasInstance](left);
}
// 不支持Symbol时,right必须是函数
else {
return left instanceof right;
}
} // 必须通过new运算符,调用构造函数
function _classCallCheck(instance, Constructor) {
if (!_instanceof(instance, Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
} // 添加一组成员方法
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
} // 创建类
function _createClass(Constructor, protoProps, staticProps) {
// 类的实例方法:作为构造函数的原型的属性
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
// 类的静态方法:作为构造函数的属性
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
} // 添加一个属性
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
} // 使用立即执行函数,创建类
var Fruit =
/*#__PURE__*/
(function () {
// 类的静态方法
_createClass(Fruit, null, [
{
key: "plant",
value: function plant() {
console.log("种果树");
}
}
]); // 类对应的构造函数
function Fruit(name) {
// 构造函数调用检查
_classCallCheck(this, Fruit); // 类的实例属性:作为new创建的上下文的属性
_defineProperty(this, "name", void 0); this.name = name;
} // 类的实例方法
_createClass(Fruit, [
{
key: "hello",
value: function hello() {
console.log(this.name);
}
}
]); return Fruit;
})(); // 类的静态属性:作为构造函数的属性
_defineProperty(Fruit, "nutrition", "vitamin");
Babel编译:类的更多相关文章
- KoaHub.js可借助 Babel 编译稳定运行在 Node.js 环境上
koahubjs KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架.可以直接在项目里使用 ES6/7(Generator Function, Class, A ...
- 使用babel编译es6
起因:开发中慢慢的学习使用es6,但是JavaScript需要浏览器来解析,而不是所有浏览器都支持es6,所以为了兼容es6,需要第三方工具进行编译es6. 工具:node,gulp,gulp-bab ...
- React系列文章:Babel编译JSX生成代码
上次我们总结了React代码构建后的Webpack模块组织关系,今天来介绍一下Babel编译JSX生成目标代码的一些规则,并且模拟整个生成的过程. 我们还是拿最简单的代码举例: import {gre ...
- webpack打包调试react并使用babel编译jsx配置方法
http://lxj8749.iteye.com/blog/2287074 ********************************************** 安装webpack npm i ...
- es6 babel编译
本文主要参照阮一峰的es6入门,为提高自己写了一份随笔. 原文地址请戳这里 ECMAScript 6 入门 ECMAScript 6是JavaScript语言的下一代标准.因为当前版本的ES6是在2 ...
- Eclipse - 安装了jd-eclipse插件后依然无法反编译类文件
问题 Eclipse在安装了jd-eclipse插件后依然无法反编译类文件,这个问题是因为没有修改默认的类文件查看器. 解决方法 修改默认的类文件查看器为jd-eclipse Window -> ...
- Babel编译:类继承
编译前 // 父类 class Fruit { static nutrition = "vitamin" static plant() { console.log('种果树'); ...
- java动态编译类文件并加载到内存中
如果你想在动态编译并加载了class后,能够用hibernate的数据访问接口以面向对象的方式来操作该class类,请参考这篇博文-http://www.cnblogs.com/anai/p/4270 ...
- intellij idea 热部署失效,需要手动编译类
从网上看到的解决方案,做一下备忘: spring boot项目中遇到jrebel类需要手动编译才会触发热部署的问题(spring boot devtools一样的问题) 1.ctl + shift + ...
随机推荐
- suse清除kthrotlds木马病毒
一.服务器感染了kthrotlds挖矿病毒 [root@51yt bin]# cd /bin/ [root@51yt bin]# wget https://busybox.net/downloads/ ...
- PAT Advanced 1050 String Subtraction (20 分)
Given two strings S1 and S2, S=S1−S2 is defined to be the remaining string after taking ...
- jquery 未来元素事件示例 on() delegate() live()
jquery 1.7版后建议使用on() $(document).on("click","#green",function(){$(this).after('& ...
- u-boot v2018.01 启动流程分析 简单版(转)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/weixin_39655765/artic ...
- throttle和debounce函数
控制耗性能的函数,避免浏览器卡死
- 【NOIP2016提高A组模拟8.15】Password
题目 分析 首先我们知道,原A序列其实表示一个矩阵,而这个矩阵的对角线上的数字就是答案B序列. 接着\(a.b>=gcd(a,b)\),所以序列A中的最大的数就是ans[1],第二大的数就是an ...
- Idea创建多模块依赖Maven项目
idea 创建多模块依赖Maven项目 本来网上的教程还算多,但是本着自己有的才是自己的原则,还是自己写一份的好,虽然可能自己也不会真的用得着. 1. 创建一个新maven项目 2. 3. 输入g ...
- spark性能调优点(逐步完善)
1.使用高性能序列化类库2.优化数据结构3.对多次使用的RDD进行持久化/CheckPoint4.使用序列化的持久化级别5.Java虚拟机垃圾回收调优 降低RDD缓存占用空间的比例:new Spark ...
- 【shell】awk的next用法
awk的next相当于循环中continue的作用,next后面的语句将不再执行. 例如,下面的例子中,包含数字3的那行的print语句没有被执行. [root]$ seq | awk '{print ...
- Python 变量类型 Ⅱ
Python字符串 字符串或串(String)是由数字.字母.下划线组成的一串字符. 一般记为 : s="a1a2···an"(n>=0) 它是编程语言中表示文本的数据类型. ...