I know there are a lot of OO javascript questions on SO and I a have been reading a lot of resources.... BUT it is still far my most long winded learning curve so far!
I am not classically trained sorry, hence I will have to just show you guys in c# an example of what I want to acheive.
I hope you can help!
public class Engine
{
public int EngineSize;
public Engine()
{
}
}
public class Car
{
public Engine engine;
public Car()
{
engine = new Engine();
}
}
guys I am not really worried about the private/public & naming conventions of the above C# example.
All I want to know is how to replicate this structure in Javascript?
Thanks!
function Engine(size) {
var privateVar;
function privateMethod () {
//...
}
this.publicMethod = function () {
// with access to private variables and methods
};
this.engineSize = size; // public 'field'
}
function Car() { // generic car
this.engine = new Engine();
}
function BMW1800 () {
this.engine = new Engine(1800);
}
BMW1800.prototype = new Car(); // inherit from Car
var myCar = new BMW1800();
So you really just want to know how one object can contain another? Here's a very simple conversion of your sample:
function Engine()
{
this.EngineSize=1600;
}
function Car()
{
this.engine=new Engine();
}
var myCar=new Car();
function Engine(){ // this is constructor. Empty since Engine do nothing.
}
Engine.prototype.EngineSize=null; // this is public property
function Car(){ // this is Car constructor. It initializes Engine instance and stores it in Engine public property
this.Engine =new Engine();
}
Car.prototype.Engine =null;
When you will make new Car instance. Car constructor will create new instance of Engine and assign it to Engine property of Car instance.