在ES6中导出/导入内置对象的自定义功能?

soo*_*kie 2 javascript ecmascript-6 es6-modules

我有一个'自定义'目录,我想存储对内置对象原型的任何更改.每个被修改的内置对象都有自己的文件(即custom/String.js任何修改String.prototype).

除了这些文件之外,我还将调用一个文件custom/All.js来导出要使用的自定义功能.

All.js

export * from './String'
export {Multiply} from './Array'
Run Code Online (Sandbox Code Playgroud)

main.js

import * from './custom/All'
Run Code Online (Sandbox Code Playgroud)

String.js

// something like this
export String.prototype.doSomething = function() {}
Run Code Online (Sandbox Code Playgroud)

可以这样做吗?

Ber*_*rgi 8

当然,即使在ES6中,扩展内置原型仍然是一个坏主意,但是如果你仍然坚持这样做而不是一个简单易用的静态辅助函数模块:

export什么都不应该.那些是突变,没有任何价值.您只需要为其副作用包含模块代码.

// main.js
import './custom';
Run Code Online (Sandbox Code Playgroud)

// custom/index.js
import './String';
import './Array';
Run Code Online (Sandbox Code Playgroud)

// custom/String.js
String.prototype.doSomething = function() {};
Run Code Online (Sandbox Code Playgroud)