babel 编译后 this 变成了 undefined】的更多相关文章

最近有在用webpack,使用了babel这个模块来编译js jsx文件,但是发现文件编译后this变成了undefined. 源文件 module.exports = React.createClass({ render: () => { return (<div>{this.props.name}</div>); } }); 编译后 module.exports = React.createClass({ render: () => { return (<di…
上次我们总结了React代码构建后的Webpack模块组织关系,今天来介绍一下Babel编译JSX生成目标代码的一些规则,并且模拟整个生成的过程. 我们还是拿最简单的代码举例: import {greet} from './utils'; const App = <h1>{greet('scott')}</h1>; ReactDOM.render(App, document.getElementById('root')); 这段代码在经过Babel编译后,会生成如下可执行代码: v…
在android程序中使用NDK编译后的ffmpeg库的时候出现了如下错误: jni/libs/libavutil.a(mem.o): in function av_malloc:libavutil/mem.c:95: error: undefined reference to 'posix_memalign' 上网查阅,发现是由于android系统一开始并不支持posix,后来增加了对posix的支持. 这个问题出现的主要原因有两个: 1.编译APP的时候指定的APP_PLATFORM 过低…
起因:开发中慢慢的学习使用es6,但是JavaScript需要浏览器来解析,而不是所有浏览器都支持es6,所以为了兼容es6,需要第三方工具进行编译es6. 工具:node,gulp,gulp-babel,babel-preset-es2015. 备注:只介绍基于node,gulp下的babel编译es6.node安装请自行网搜.npm转淘宝镜像cnpm请自行网搜. 开始:创建项目文件夹:打开命令行工具:右键开始菜单--运行--输入cmd--回车. 1:检验node是否安装成功:输入    (有…
http://lxj8749.iteye.com/blog/2287074 ********************************************** 安装webpack npm i webpack --save-dev 如果使用 -g参数,可以安装到全局使用,在当前目录安装,可执行文件为 ./node_modules/.bin/webpack 配置webpack.config.js var path = require('path'); module.exports = {…
安装Babel 官方文档建议我们根据单个项目进行本地安装,原因是不同的项目可以依赖不同版本的 Babel,使你的项目更方便移植.更易于安装. 在项目的根目录下使用命令行工具(CMD等)执行下面代码 npm install --save-dev babel-cli 安装编译规则 官方提供了几套预设的规则集,分别适用于 ES2015.React 和 ES7 的一些实验性特性.我们可以根据需要安装(如果只需要学习 ES6 语法的话,就只选 ES2015 好了). # ES2015转码规则 npm in…
Babel的目的就是让你可以使用最新的标准来开发,然后把兼容的问题交给它来完成.比如我如何在使用ES6的语法写完之后将其转换为ES5满足通用性呢? 先用这个最常用的Babel的用法来引入吧. 一  首先在项目中新建一个package.json文件,也可以使用 npm init 自动生成. 这里简单提一下,没有fq的话建议使用国内的淘宝镜像,速度会快很多,特别是类似Bable这样安装的内容比较多的情况,使用下列命令即可 npm install -g cnpm --registry=https://…
编译前 // 父类 class Fruit { static nutrition = "vitamin" static plant() { console.log('种果树'); } name; constructor(name) { this.name = name; } hello() { console.log(this.name); } } // 子类 class Mongo extends Fruit { constructor(name, level) { super(na…
编译前 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) { // 支持S…
浏览器是无法直接使用模块之间的commonjs或es6,webpack在打包时做了什么处理,才能让浏览器能够执行呢,往下看吧. 使用commonjs语法 先看下写的代码, app.js minus.js webpack.config.js 代码非常简单,没啥可说的,直接上编译后的代码来分析,代码可以直接复制过来在浏览器执行调试 // 一个IIFE, 方法的形参是一个对象,key是页面的路径,value是页面的代码 ;(function (modules) { // 缓存已经读取过的module,…