gpt4 book ai didi

javascript - 如何从另一个文件调用类中的函数

转载 作者:行者123 更新时间:2023-12-03 00:49:11 25 4
gpt4 key购买 nike

我正在尝试找出如何完成以下任务。我希望能够调用另一个文件中的类中的函数:

文件1

export class Something {
constructor() {
...
}
myFunction = () => {
...
}
}

文件2

import { Something } from 'file1';

export function theFunction() {
if (condition met) {
Something.myFunction(...) // The myFunction is saying it's not a function
}
}

最佳答案

class Canonical {      /* in ES5 */ function Canonical() {}
myMethod() { ... } Canonical.prototype.myMethod = function() { ... };
}

你可以这样调用它:

Canonical.prototype.myMethod();
// Or, to call it as a method on anObject
Canonical.prototype.myMethod.call(anObject);

但是,您创建的不是方法,而是在每个单独实例上创建的属性,它恰好是一个函数:

class Unusual {                 /* in ES5 */ function Unusual() {
myFunction = () => { ... }; this.myFunction = function() { ... };
} }

它仅存在于实例中,因此您必须创建一个实例来调用它:

new Unusual().myFunction();

但是我不能推荐这种定义“方法”的方式,除非您特别需要预先绑定(bind)它。这在 React.Component 类中很有用,但现在使用 React hooks,用例正在减少。

class Test {
constructor() { this.a = '🍏'; }
myMethod() { console.log(this.a); }
myFunction = () => console.log(this.a);
}
const methodReference = new Test().myMethod;
try {
methodReference(); /* This will not work.
This is where an instance property can be advantageous */
} catch (ex) { console.error(ex.message); }
const functionReference = new Test().myFunction;
functionReference();

关于javascript - 如何从另一个文件调用类中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53120613/

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