这是我第一次使用OOP进行试验,所以请保持温和..
首先我创建了一个名为Connection的函数,然后我从中创建了对象。目前有2个硬编码的对象,但可以在以后动态创建多个对象。如何获取已创建对象的数量(在此示例中,结果应为" 2")?或者是否有更聪明的方法来遍历所有创建的对象?
function Connection(origin, target, departuredate, arrivaldate) {
this.origin = origin;
this.target = target;
this.departuredate = departuredate;
this.arrivaldate = arrivaldate;
}
var fare1 = new Connection("FRA", "BKK", "25.06.2018", "10.07.2018");
var fare2 = new Connection("FRA", "LAX", "22.07.2018", "30.07.2018");
答案 0 :(得分:4)
在javascript函数中也是对象,并且可以具有属性。基于georg的注释并避免使用全局变量,为什么不给Connection
一个数组属性然后根据需要使用它呢?
function Connection(origin, target, departuredate, arrivaldate) {
this.origin = origin;
this.target = target;
this.departuredate = departuredate;
this.arrivaldate = arrivaldate;
Connection.instances.push(this);
}
Connection.instances = [];
var fare1 = new Connection("FRA", "BKK", "25.06.2018", "10.07.2018");
var fare2 = new Connection("FRA", "LAX", "22.07.2018", "30.07.2018");
console.log(Connection.instances);
console.log('Number of connections:', Connection.instances.length);
修改强>
请记住,这是一种天真的方法。它不会从instances属性中删除Connection
的实例。此外,它会永远保留对这些实例的引用,可能不是你想要做的。我将所有这些作为练习留给读者,因为从技术上讲,问题没有要求或关于任何问题。
答案 1 :(得分:0)
您可以在构造函数中使用全局变量。
var connectionNb = 0;
function Connection(origin, target, departuredate, arrivaldate) {
this.origin = origin;
this.target = target;
this.departuredate = departuredate;
this.arrivaldate = arrivaldate;
++connectionNB;
}
var fare1 = new Connection("FRA", "BKK", "25.06.2018", "10.07.2018");
var fare2 = new Connection("FRA", "LAX", "22.07.2018", "30.07.2018");