gpt4 book ai didi

javascript - 在 ES6 模块中导出函数原型(prototype)

转载 作者:行者123 更新时间:2023-11-30 08:23:05 24 4
gpt4 key购买 nike

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

所以,如果我在 functions.js 中有这个:

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

return item;
}

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

然后我在别处这样做:

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

let product = new Product(result);

product.printThat();

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

最佳答案

这里的问题其实和模块导入导出无关。事实上,问题出在 Product 函数上。

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();

不起作用。

因为您从 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();

或者作为一个类

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

关于javascript - 在 ES6 模块中导出函数原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50223959/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com