Skip to main content

@babel/plugin-transform-object-super

信息

此插件包含在 @babel/preset-env

¥This plugin is included in @babel/preset-env

示例

¥Examples

输入

¥In

JavaScript
let obj = {
say() {
return "Hello";
},
};

let obj2 = {
say() {
return super.say() + "World!";
},
};

输出

¥Out

JavaScript
var _obj;

var _get = function get(object, property, receiver) {
if (object === null) object = Function.prototype;
var desc = Object.getOwnPropertyDescriptor(object, property);
if (desc === undefined) {
var parent = Object.getPrototypeOf(object);
if (parent === null) {
return undefined;
} else {
return get(parent, property, receiver);
}
} else if ("value" in desc) {
return desc.value;
} else {
var getter = desc.get;
if (getter === undefined) {
return undefined;
}
return getter.call(receiver);
}
};

var obj = {
say: function say() {
return "Hello";
},
};

var obj2 = (_obj = {
say: function say() {
return (
_get(_obj.__proto__ || Object.getPrototypeOf(_obj), "say", this).call(
this
) + "World!"
);
},
});

安装

¥Installation

npm install --save-dev @babel/plugin-transform-object-super

用法

¥Usage

¥With a configuration file (Recommended)

babel.config.json
{
"plugins": ["@babel/plugin-transform-object-super"]
}

通过 CLI

¥Via CLI

Shell
babel --plugins @babel/plugin-transform-object-super script.js

通过 Node API

¥Via Node API

JavaScript
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-transform-object-super"],
});