我正在使用babel与gulp并在ES6中创建一个简单的DOM库.但运行后,当我要使用它时,我得到了Object.assign不是chrome控制台中的一个功能.
这是gulp代码
gulp.task('scripts',function() { return gulp.src(src + 'js/*.js') .pipe(babel()) .pipe(concat('main.js')) .pipe(gulp.dest(dest + 'js')); });
这是类文件
class DOM { constructor( selector ) { var elements = document.querySelectorAll(selector); this.length = elements.length; Object.assign(this,elements); } ... } const dom = selector => new DOM(selector);
我在客户端使用它像dom(‘#elId’);
解决方法
我怀疑您已经知道Google Chrome使用
V8,它支持ECMAScript第5版.
Object.assign
在ECMAScript第6版中引入.
为了使用这些添加,您需要由Babel提供include the ES6 polyfill:
This will emulate a full ES6 environment. […]
Available from the
browser-polyfill.js
file within ababel-core
npm release. This needs to be included before all your compiled Babel code. You can either prepend it to your compiled code or include it in a<script>
before it.