0

我正在尝试使用Object.assignfrom ES6,但总是如此undefined。这是我使用它的文件:

var Dispatcher = require('./dispatcher.js');

export default Object.assign(Dispatcher.prototype, {
    handleViewAction(action) {
        this.dispatch({
            source: 'VIEW_ACTION',
            action: action
        });
    }
});

这是gulptranspile对代码使用的任务:

var browserify = require('browserify');
var reactify = require('reactify');
var source = require('vinyl-source-stream')
var to5 = require('6to5ify');

module.exports = function(gulp, config) {
    gulp.task('browserify', function() {
        browserify(config.app.entry, {debug: true})
            .add(require.resolve('6to5/polyfill'))
            .transform(to5)
            .transform(reactify)
            .bundle()
            .pipe(source(config.app.bundleName))
            .pipe(gulp.dest(config.app.bundle));
    });
};

Object的有效,assignundefined. 我究竟做错了什么?

4

1 回答 1

1

Babeljs(以前是 6to5)不转换或填充 Object.assign。

您将需要使用另一个 polyfill 库。2 个流行的库是core-jsobject-assign

使用core-js你可以这样做:

require('core-js');
Object.assign({}, {a:1});

或者

var core = require('core-js/library');
var result = core.Object.assign({}, {a:1});

使用对象分配

var _assign = require('object-assign');
var result = _assign({}, {a:1});

但当然还有很多其他库也这样做。

于 2015-03-26T13:27:11.317 回答