[英]Function expression in a Class
我知道function expression
和function 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.