我可以在 javascript 中使用函数表达式作为 class 方法吗?
Can I use a function expression as class method in javascript?
我期待 javascript 中的具体问题。
我想使用函数表达式作为 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 方面比我更有经验的人可以分享他们的知识。
感谢您的评论!
此致!
这是您需要了解的有关 classes MDN 中方法定义的所有信息,但这里是我的一些解释:
基本上你是在尝试在 class 中定义一个方法(这需要给这个方法一个名字),然后给它分配一个命名函数。
这会起作用,但您将无法使用函数名称调用 class 的方法,但您可以使用方法名称调用它。
假设您有一个对象和一个单独的函数:
function func() {return 'Hello'}
const obj = {};
并且您想将函数分配给您将要执行的对象的属性之一:
obj.myFunction = func;
从现在开始,您将像这样从对象调用函数:
obj.myFunction();
但是我们当然可以在对象的声明处分配函数:
function func() {return 'Hello'};
const obj = {
myFunction: func
}
而且您仍然要像这样从对象调用函数:
obj.myFunction();
对于尸体,您可以在对象的声明中声明命名函数:
const obj = {
myFunction: function func() {return 'Hello'}
}
而且您仍然要像这样从对象调用函数:
obj.myFunction();
所以我希望你明白我要去哪里......同样的事情可以应用于 classes,因为我们知道它们只是糖语法 :)
简而言之,这是可能的,但函数的名称将没有用。
class foo {
constructor() {
//something
}
method = function init() {
console.log('init 1');
}
}
const fooInstance = new foo();
fooInstance.method();
我期待 javascript 中的具体问题。
我想使用函数表达式作为 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 方面比我更有经验的人可以分享他们的知识。
感谢您的评论!
此致!
这是您需要了解的有关 classes MDN 中方法定义的所有信息,但这里是我的一些解释:
基本上你是在尝试在 class 中定义一个方法(这需要给这个方法一个名字),然后给它分配一个命名函数。 这会起作用,但您将无法使用函数名称调用 class 的方法,但您可以使用方法名称调用它。
假设您有一个对象和一个单独的函数:
function func() {return 'Hello'}
const obj = {};
并且您想将函数分配给您将要执行的对象的属性之一:
obj.myFunction = func;
从现在开始,您将像这样从对象调用函数:
obj.myFunction();
但是我们当然可以在对象的声明处分配函数:
function func() {return 'Hello'};
const obj = {
myFunction: func
}
而且您仍然要像这样从对象调用函数:
obj.myFunction();
对于尸体,您可以在对象的声明中声明命名函数:
const obj = {
myFunction: function func() {return 'Hello'}
}
而且您仍然要像这样从对象调用函数:
obj.myFunction();
所以我希望你明白我要去哪里......同样的事情可以应用于 classes,因为我们知道它们只是糖语法 :) 简而言之,这是可能的,但函数的名称将没有用。
class foo {
constructor() {
//something
}
method = function init() {
console.log('init 1');
}
}
const fooInstance = new foo();
fooInstance.method();