gpt4 book ai didi

javascript - 为什么我必须在类中使用 foo() 而不是函数 foo() ?

转载 作者:行者123 更新时间:2023-12-03 05:44:54 26 4
gpt4 key购买 nike

为什么我必须在类中使用 foo() 而不是函数 foo()?

class car {
move() {
console.log("move")
}
}
let a = new car()
a.move()

function move() {
console.log("move")
}
move()

JS FIDDLE

最佳答案

因为这就是 class 语法的设计方式。这些是方法声明,而不是函数声明(方法是函数,但可以访问super,并且与它们创建的对象有牢不可破的链接,它们的[[HomeObject]] )。虽然可以将语法设计为需要 function 关键字,但它会很冗长、不必要,而且可能会产生误导;因此 TC39(插入 JavaScript 发展的委员会)决定不包含它。

<小时/>

旁注:您还可以在对象初始值设定项中使用方法语法,但与 class 主体不同,它与任何其他属性声明一样,您必须使用逗号将其与其他属性分隔开:

const o = {
foo() {
// ...
}, // <=== Note the comma
bar() {
// ...
}
};

而这些逗号在类主体中将是语法错误,如下所示:

class Example {
foo() {
// ...
}
bar() {
// ...
}
}

关于javascript - 为什么我必须在类中使用 foo() 而不是函数 foo() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49035916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com