JavaScript Objects in functions

Functions can return values. But these values ​​do not have to represent primitive data – numbers, strings, but can also be complex objects.

For example, let’s move the creation of the user object into a separate function:

function createUser(pName, pAge) {
    return {
        name: pName,
        age:page,
        displayInfo: function() {
            document.write("Name: " + this.name + " age: " + this.age + "<br/>");
        }
    };
};
var tom = createUser("Tom", 26);
tom.displayInfo();
var alice = createUser("Alice", 24);
alice.displayInfo();

Here, the function createUser()takes the values ​​pName and pAge and creates a new object from them, which is the returned result.

The advantage of moving object creation into a function is that we can then create several objects of the same type with different values.

In addition, an object can be passed as a parameter to a function:

function createUser(pName, pAge) {
    return {
        name: pName,
        age:page,
        displayInfo: function() {
            document.write("Name: " + this.name + " age: " + this.age + "<br/>");
        },
        driveCar: function(car){
            document.write(this.name + " drives " + car.name + "<br/>");
        }
    };
};

function createCar(mName, mYear){
    return{
        name: mName,
        year: year
    };
};
var tom = createUser("Tom", 26);
tom.displayInfo();
var bently = createCar("Bentley", 2004);
tom.driveCar(bently);

Two functions are used here to create users and a machine object. The driveCar()user object method takes a car object as a parameter.

As a result, the browser will display:

Name: Tom Age: 26
Tom is driving a Bentley