[英]How to instantiate class in another class in javascript?
如何在javascript中的另一个类中实例化类? 一个类具有静态和非静态方法
export default class MyClass {
static staticMethod() {
return console.log(`this is static method`);
}
nonStaticMethod() {
return console.log(`this is not static method`);
}
}
我可以从其他这样的类的js文件中从上面访问静态方法:
import MyClass form "somewhere";
MyClass.staticMethod(); //this works
但是如何访问非静态方法?
//This does not work
import MyClass form "somewhere";
MyClass.nonStaticMethod();
为了使其正常工作,需要创建/传递MyClass的实例。 我该怎么做?
let myClass = new MyClass();
myClass.nonStaticMethod();
//I am getting uncaught ReferenceError: nonStaticMethod is not defined
我真的没有发现任何错误。 这段代码可以正常工作。
class myClass { static staticMethod() { return console.log(`this is static method`); } nonStaticMethod() { return console.log(`this is not static method`); } } myClass.staticMethod(); let classInstance = new myClass(); classInstance.nonStaticMethod();
创建该类的实例,然后调用实例方法。 您不能从这样的静态上下文中调用实例方法。 请参见下面的示例代码:
class ClassA { static staticMethod() { return 'this is static method'; } nonStaticMethod() { return 'this is not static method'; } } //Call static method: console.log(ClassA.staticMethod()); //Works as expected //ClassA.nonStaticMethod(); // Uncomment and see it Will cause a Uncaught TypeError //Call instance method: const instance = new ClassA(); //console.log(instance.staticMethod()); // Uncomment and see it Will cause a Uncaught TypeError console.log(instance.nonStaticMethod()); //Works as expected
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.