繁体   English   中英

我可以在 javascript 中使用 function 表达式作为 class 方法吗?

[英]Can I use a function expression as class method in javascript?

我期待 javascript 中的一个具体问题。

我想使用 function 表达式作为 class 方法,但我不知道是否可能。 我尝试查看有关它的任何文档,但没有找到...这是一个示例:

class TourIdentifier extends HttpClient {
   constructor(baseURL, langCode, ...attr) {
       super({
            baseURL,
            headers: {
            lang: langCode
       }
       });

      this.model.init(...attr);
    }

    model =  function init(...attr) {
    this.tours_identifiers_identifier   = attr[0];
    this.tours_id                       = attr[1];
    this.lang_code                      = attr[2];
    this.tours_id_                      = attr[3];
    this.tours_identifiers_id           = attr[4];
    }

...

我知道有很多方法可以做到这一点,但我只是有这个问题,我希望任何在 JS 方面比我更有经验的人都可以分享他们的知识。

我很欣赏你的评论!

此致!

这是您需要了解的有关MDN类中的方法定义的所有信息,但这是我的一些解释:

基本上你正在尝试在一个类中定义一个方法(这需要给这个方法一个名称),然后为它分配一个命名的 function 。 这将起作用,但您将无法使用函数名称调用 class 的方法,但您可以使用方法名称来执行此操作。

假设您有一个 object 和一个单独的 function:

function func() {return 'Hello'}

const obj = {};

并且您想将 function 分配给您将执行的对象属性之一:

obj.myFunction = func;

从现在开始,您将像这样从 object 调用 function:

obj.myFunction();

但是我们当然可以在对象的声明中分配 function :

function func() {return 'Hello'};

const obj = {
    myFunction: func
}

你仍然会像这样从 object 中调用 function:

obj.myFunction();

你可以在对象的声明中声明命名的功能:

const obj = {
    myFunction: function func() {return 'Hello'}
}

你仍然会像这样从 object 中调用 function:

obj.myFunction();

所以我希望你明白我要去哪里......同样的事情可以应用于类,因为我们知道它们只是糖语法:) 总之这是可能的,但 function 的名称不会有用.

 class foo { constructor() { //something } method = function init() { console.log('init 1'); } } const fooInstance = new foo(); fooInstance.method();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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