Javascript 继承对象。遍历所有对象

Javascript 继承对象。遍历所有对象,javascript,oop,javascript-objects,Javascript,Oop,Javascript Objects,我的问题是: 我有一个继承对象(类)函数,我用x多个对象填充该函数,如下所示: function Booking (doc_id, arrival_date, supplier_amount, client_amount, currency, profit, calculated_profit, currency_rate) { this.doc_id = doc_id; this.arrival_date = arrival_date; this.supplier_am

我的问题是:

我有一个继承对象(类)函数,我用x多个对象填充该函数,如下所示:

function Booking (doc_id, arrival_date, supplier_amount, client_amount, currency, profit, calculated_profit, currency_rate) {
    this.doc_id = doc_id;
    this.arrival_date = arrival_date;
    this.supplier_amount = supplier_amount;
    this.client_amount = client_amount;
    this.currency = currency;
    this.profit = profit;
    this.calculated_profit = calculated_profit;
    this.exchange_rate = currency_rate;
    if(pastDate(this.arrival_date)) {
        past_date: true;
    }
    else {
        past_date: false;
    }
} 
是否可以遍历所有对象? 我希望有一个函数可以遍历所有预订对象,并使用结果填充dataTables。 我想这个函数必须由

Booking.prototype = { }

我似乎在网上找不到关于这个的任何东西。我尝试了我所有的想法,但没有成功。

要迭代所有
预订
实例,必须将它们的引用存储在某个位置:

var Booking=(函数(){
var instances=[];//实例数组
功能预订(foo){
if(!(此预订实例))return;//调用时不带'new'`
instances.push(this);//存储实例
this.foo=foo;//您当前的代码
}
Booking.prototype.whatever=函数(){
//你可以在这里使用'instances'
}
回程订票;
})();
但是等待:不要这样做(除非绝对必要)

上面的代码有一个大问题:由于
预订
实例在
实例
中引用,垃圾收集器不会杀死它们,即使它们没有在其他地方引用

因此,每次创建实例时,都会生成一个实例


ECMAScript 6引入了,它允许您将弱持有对象存储在集合中,这样,如果它们没有在其他任何地方引用,垃圾收集器将杀死它们。但是
WeakSet
s是不可编辑的,因此它们在您的情况下没有用处。

为什么不传递一个对象而不是许多参数?
可以遍历所有对象吗?
这是什么意思?是否要遍历该对象的所有属性(如doc_id、arrival_date等)?遍历继承Booking的所有对象,并获取其属性?是的。让我冒昧地用伪代码猜测一个示例<代码>班级夜间预订扩展预订;每小时订票延长订票时间;nb=新的夜间预订(…);hb=新的小时预订(…);hb2=new HourlyBooking(…)您希望通过“nb”、“hb”和“hb2”进行迭代,无论它们是在何处创建的,也不管它们是如何创建的?谢谢您的解释。这和我得出的结论差不多。