簡體   English   中英

類中的函數表達式

[英]Function expression in a Class

我知道function expressionfunction declaration之間的區別是什么,但是在引用類時它們有何不同? 像下面的someFunction可以在類中的什么地方使用? 哪個類可以在哪里實例化?

class xyz {
    someFunction(){
        // Function code
    }
}

VS

class xyz {
    var someFunction = function(){
        // Function code
    }
}

使用函數聲明時,函數將轉到類原型。

class xyz {
    someFunction(){
        // Function code
    }
}

上面的類可以表示為函數構造函數:

    function xyz() {
        //Code.
    }
    xyz.prototype.someFunction = function() {
      //Some code
    }

因此someFunction()將成為xyz原型的一部分。

在類中使用函數表達式時,它們會引發無效的語法錯誤。 但是,當您在經典函數構造函數中使用函數表達式時,該函數只是局部變量,無法被xyz實例訪問。

function xyz()
 {
    var someFunction = function(){
        // Function code
    }
}

這種情況與函數表達式和函數聲明之間的區別無關

您將獲得Unexpected identifier因為文檔不允許或定義此類語法

class xyz {
    var someFunction = function(){
        // Function code
    }
}

class語法中,您可以選擇三個函數來編寫函數:

class xyz {
  constructor() {
    // Function code
  }
  someFunction() {
    // Function code
  }
  static sayHi() {
    // Function code
  }
}

如果您使用其他文檔不允許的表達式或語句,則會出現錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM