为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁星淼淼 2021-08-20 18:11:35
如何在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 workimport MyClass form "somewhere";MyClass.nonStaticMethod();为了使其工作,需要创建/传递 MyClass 的实例。我怎么能做这样的事情?let myClass = new MyClass();myClass.nonStaticMethod();//I am getting uncaught ReferenceError: nonStaticMethod is not defined
查看完整描述

2 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

创建类的实例,然后调用实例方法。您不能像那样从静态上下文中调用实例方法。请参阅下面的示例代码:


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


查看完整回答
反对 回复 2021-08-20
?
莫回无

TA贡献1865条经验 获得超7个赞

我真的没有看到这里有什么问题。这段代码工作得很好。


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


查看完整回答
反对 回复 2021-08-20
  • 2 回答
  • 0 关注
  • 261 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信