如何导出原型方法?
How to export a prototype method?
如何导出原型方法?
我创建了一个原型方法:
Array.prototype.remove = function(elementToRemove: any): void {
var __idx = this.indexOf(elementToRemove);
if (__idx >= 0) {
this.splice(__idx, 1);
} else {
throw new Error(`Cannot find element ${elementToRemove}`)
}
}
我想导出它并在另一个文件中使用。但我不知道如何添加导出:
两者
export Array.prototype.remove = function(elementToRemove: any)
和
Array.prototype.remove = export function(elementToRemove: any)
不起作用,我收到 'Expression expected' 错误。那么如何导出呢?
ps:我没有使用 nodejs,我在 chrome 和 HTML 和 CSS 中使用 Web 前端。
根本问题是您的代码执行 side-effect - 它向 Array.prototype
.
添加了一些内容
一个选项是导出一个函数,调用时将该函数添加到原型中:
export const addRemoveToPrototype = () => {
Array.prototype.remove = function( // ...
然后消费者可以通过
使用它
import { addRemoveToPrototype } from './addRemoveToPrototype';
addRemoveToPrototype();
另一种选择是 运行 模块顶层的代码:
Array.prototype.remove = function(elementToRemove: any): void {
然后消费者可以只导入模块,但不能对其进行任何操作:
import './addRemoveToPrototype';
也就是说,我真的建议不要改变 built-in 对象 - 它会使代码变得脆弱且更容易破解,尤其是当其他脚本 运行 在同一环境中时。
如何导出原型方法?
我创建了一个原型方法:
Array.prototype.remove = function(elementToRemove: any): void {
var __idx = this.indexOf(elementToRemove);
if (__idx >= 0) {
this.splice(__idx, 1);
} else {
throw new Error(`Cannot find element ${elementToRemove}`)
}
}
我想导出它并在另一个文件中使用。但我不知道如何添加导出:
两者
export Array.prototype.remove = function(elementToRemove: any)
和
Array.prototype.remove = export function(elementToRemove: any)
不起作用,我收到 'Expression expected' 错误。那么如何导出呢?
ps:我没有使用 nodejs,我在 chrome 和 HTML 和 CSS 中使用 Web 前端。
根本问题是您的代码执行 side-effect - 它向 Array.prototype
.
一个选项是导出一个函数,调用时将该函数添加到原型中:
export const addRemoveToPrototype = () => {
Array.prototype.remove = function( // ...
然后消费者可以通过
使用它import { addRemoveToPrototype } from './addRemoveToPrototype';
addRemoveToPrototype();
另一种选择是 运行 模块顶层的代码:
Array.prototype.remove = function(elementToRemove: any): void {
然后消费者可以只导入模块,但不能对其进行任何操作:
import './addRemoveToPrototype';
也就是说,我真的建议不要改变 built-in 对象 - 它会使代码变得脆弱且更容易破解,尤其是当其他脚本 运行 在同一环境中时。