Proto to assign transform

This plugin allows Babel to transform all `__proto__` assignments to a method that will do a shallow copy of all properties.

详情

这意味着将会按以下方式工作:

var foo = { a: 1 };
var bar = { b: 2 };
bar.__proto__ = foo;
bar.a; // 1
bar.b; // 2

但是不会按以下方式:

var foo = { a: 1 };
var bar = { b: 2 };
bar.__proto__ = foo;
bar.a; // 1
foo.a = 2;
bar.a; // 1 - 应该是2,但请记住,在没有任何限制的情况下,它是一个简单的拷贝

如果你打算使用此插件,则必须注意这种情况。

示例

输入

bar.__proto__ = foo;

输出

var _defaults = ...;

_defaults(bar, foo);

安装

npm install --save-dev babel-plugin-transform-proto-to-assign

用法

通过 .babelrc(推荐)

.babelrc

{
  "plugins": ["transform-proto-to-assign"]
}

通过 CLI

babel --plugins transform-proto-to-assign script.js

通过 Node API

require("babel-core").transform("code", {
  plugins: ["transform-proto-to-assign"]
});