@babel/plugin-transform-object-super
info
This plugin is included in @babel/preset-env
Examples
In
JavaScript
let obj ={
say(){
return"Hello";
},
};
let obj2 ={
say(){
returnsuper.say()+"World!";
},
};
Out
JavaScript
var _obj;
var_get=functionget(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){
returnundefined;
}else{
returnget(parent, property, receiver);
}
}elseif("value"in desc){
return desc.value;
}else{
var getter = desc.get;
if(getter ===undefined){
returnundefined;
}
return getter.call(receiver);
}
};
var obj ={
say:functionsay(){
return"Hello";
},
};
var obj2 =(_obj ={
say:functionsay(){
return(
_get(_obj.__proto__||Object.getPrototypeOf(_obj),"say",this).call(
this
)+"World!"
);
},
});
Installation
- npm
- Yarn
- pnpm
- Bun
npm install --save-dev @babel/plugin-transform-object-super
yarn add --dev @babel/plugin-transform-object-super
pnpm add --save-dev @babel/plugin-transform-object-super
bun add --dev @babel/plugin-transform-object-super
Usage
With a configuration file (Recommended)
babel.config.json
{
"plugins":["@babel/plugin-transform-object-super"]
}
Via CLI
Shell
babel --plugins @babel/plugin-transform-object-super script.js
Via Node API
JavaScript
require("@babel/core").transformSync("code",{
plugins:["@babel/plugin-transform-object-super"],
});