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
        });
    }
});

そして、これが私がコードgulpに使用しているタスクtranspileです:

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は有効ですが、assignですundefined。私は何を間違っていますか?

4

1 に答える 1

1

Babeljs (以前の 6to5) は、Object.assign を変換またはポリフィルしません。

別のポリフィル ライブラリを使用する必要があります。人気のある 2 つのライブラリは、core-jsまたはobject-assignです。

core-jsを使用すると、次のようになります。

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

また

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

object-assign を使用:

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

しかし、もちろん、同じことを行う他の多くのライブラリがあります。

于 2015-03-26T13:27:11.317 に答える