Javascript 将函数转换为es6类
我正在学习如何使用es6Javascript 将函数转换为es6类,javascript,ecmascript-6,Javascript,Ecmascript 6,我正在学习如何使用es6类,需要一些帮助来理解如何将其从函数转换为类: function MyModel(make, year) { var carType = this; carType.make = make; // function that I have further in code sellCar(carType, year); } 我试图实现的是这样的目标: class MyModel { constructor(make, year) {
类
,需要一些帮助来理解如何将其从函数
转换为类
:
function MyModel(make, year) {
var carType = this;
carType.make = make;
// function that I have further in code
sellCar(carType, year);
}
我试图实现的是这样的目标:
class MyModel {
constructor(make, year) {
this.make = make;
this.year = year;
sellCar(this.make, this.year);
}
}
我感到困惑的是我对变量引用的这个
的引用做了什么。我需要这个吗?我在代码的其他部分中使用了它,但宁愿重构也不要这样做
我现在的难点是将
这个分配给carType。如果我将下面的代码放在我的构造函数中
,我如何从carType
指向此
function MyModel(make, year) {
var carType = this;
carType.make = make;
// function that I have further in code
sellCar(carType, year);
}
它可以写成
function MyModel(make, year) {
this.make = make;
sellCar(this, year);
}
在ES6中,这是一个微不足道的转换
class MyModel {
constructor (make, year) {
this.make = make;
sellCar(this, year);
}
}
ES6class
es只是语法上的糖,所以功能是相同的(前提是您总是使用new
关键字调用构造函数(您应该这样做))
但是什么是sellCar
?返回值被丢弃,因此我不得不相信sellCar
有其他类型的副作用。您想实现什么?make和year很可能是memeber变量,sellCar很可能是一个方法(尽管我认为可能不属于类内的方法,而属于作用于该类对象的方法)。阅读本文,将帮助您定位、更新m me,如果将来需要助手,您可以使用class MyModel{constructor(make,year){/*此处的函数体相同*/}
。无需将变量转换为属性。@akaphenom请参阅“编辑”,并让我知道这是否有助于您理解我的困惑。我只是想了解将此重新分配给变量是否有意义。谢谢。我认为我的代码中有不必要的代码,这可能是我的困惑的问题所在抱歉,sellCar()
是我函数的一部分,只是添加到初始化方法的原型中。