繁体   English   中英

如何在javascript中的另一个类中实例化类?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM