在ES6模块中导出功能原型

Mod*_*rmo 1 javascript ecmascript-6

我似乎无法在从代码库其他部分导入的构造函数上导出原型。

所以,如果我在functions.js

export function Product(unprocessedItem) {
  let item = Object.assign({}, unprocessedItem);   

  return item;
}

Product.prototype.printThat = function() {
  console.log('Yo, it worked!')
}
Run Code Online (Sandbox Code Playgroud)

然后在其他地方执行此操作:

import {Product} from '@/js/functions'

let product = new Product(result);

product.printThat();
Run Code Online (Sandbox Code Playgroud)

printThat() 似乎不起作用...

gen*_*nry 5

实际上,这里的问题与模块导入和导出无关。实际上,问题出在产品功能上。

function Product(unprocessedItem) {
  let item = Object.assign({}, unprocessedItem);   

  return item;
}

Product.prototype.printThat = function() {
  console.log('Yo, it worked!')
}

let product = new Product({ test: true });

product.printThat();
Run Code Online (Sandbox Code Playgroud)

不起作用

因为您返回的是商品,而不是Product构造函数的Product。

function Product(unprocessedItem) {
  Object.assign(this, unprocessedItem);
}

Product.prototype.printThat = function() {
  console.log('Yo, it worked!', this.test);
}

let product = new Product({ test: true });

product.printThat();
Run Code Online (Sandbox Code Playgroud)

还是上课

export class Product {
  constructor (unprocessedItem) {
    Object.assign(this, unprocessedItem);
  }
  printThat () {
    console.log('Yo, it worked!');
  }
}
Run Code Online (Sandbox Code Playgroud)