[英]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.