Javascript 如何对Object.defineProperty使用导出指令?
很清楚如何将export语句与对象或函数一起使用:Javascript 如何对Object.defineProperty使用导出指令?,javascript,ecmascript-2016,Javascript,Ecmascript 2016,很清楚如何将export语句与对象或函数一起使用: export function take(source, n) { return source.slice(0, n); } 但是如果我想使用Object.defineProperty扩展原型呢 Object.defineProperty(Enumerable.prototype, 'take', { value(n) { return [].concat(this).slice(0, n);
export function take(source, n) {
return source.slice(0, n);
}
但是如果我想使用Object.defineProperty扩展原型呢
Object.defineProperty(Enumerable.prototype, 'take', {
value(n) {
return [].concat(this).slice(0, n);
},
});
在这种情况下如何使用导出?您实际上不必导出任何内容,但在要使用扩展原型的其他文件中,您必须在导出文件的位置导入该文件
//enumerable.js
Object.defineProperty(Enumerable.prototype,'take'{
数值(n){
返回[].concat(this).slice(0,n);
},
});
//index.js
从“./enumerable.js”导入*作为可枚举
console.log(Enumerable.prototype.take)//将是此处的一个函数
可枚举构造函数的实例将在其原型链中具有该属性。从可枚举.js
导出的内容不可导入。我认为导入是多余的?如果没有导入,JS引擎将不会加载enumerable.JS
文件,因此它不知道对enumerable
的原型做了哪些更改。这就是为什么不建议修改原型,我们应该扩展该类。如果加载文件只是为了产生副作用,则无需命名,例如,import./enumerable.js'代码>