Javascript 如何从工厂函数的方法中删除`this`关键字?

Javascript 如何从工厂函数的方法中删除`this`关键字?,javascript,this,Javascript,This,我的问题 在下面的简单工厂函数中,我在totalCost方法中使用了this,以引用其父对象。如果不使用this,我如何构建这样的东西?我看不出该用什么图案 “使用严格的” 功能平面创建者(a、b、c){ 返回{ 制造商:a, 发动机数量:b, costPerEngine:c, totalCost:function(){ 返回此.numberOfEngines*此.costPerEngine; } } } 设b17=planeCreator('B-17',4,25000); document.

我的问题 在下面的简单工厂函数中,我在totalCost方法中使用了
this
,以引用其父对象。如果不使用
this
,我如何构建这样的东西?我看不出该用什么图案

“使用严格的”
功能平面创建者(a、b、c){
返回{
制造商:a,
发动机数量:b,
costPerEngine:c,
totalCost:function(){
返回此.numberOfEngines*此.costPerEngine;
}
}
}
设b17=planeCreator('B-17',4,25000);
document.querySelectorAll('.output')[0].textContent=b17.totalCost()

将新创建的对象分配给变量,并引用该变量:

(还要注意,如果只是选择单个元素,最好使用
querySelector
,而不是
querySelector all

功能平面创建者(a、b、c){
常量对象返回={
制造商:a,
发动机数量:b,
costPerEngine:c,
总成本:()=>objToReturn.numberOfEngines*objToReturn.costPerEngine,
};
返回objToReturn;
}
常数b17=平面创建者('B-17',4,25000);
document.querySelector('.output').textContent=b17.totalCost()

但是为什么要避免
这个
这个
只是Javascript的一个固有部分,它是一个非常古老的建议,不再相关。道格拉斯·克罗克福德本人已经改变了在javascript中如何实现OO的想法