To help cement some of the ideas we've talked about with objects, let's look at another example. I'm going to jump to sublime. And here I have quite a bit of code to take a look at. So first off, these variables are declared at the top, I'm assuming these contain data from earlier in the program, perhaps they come from a database, perhaps they come from a form that was filled out by a user, whatever the case may be, but we're going to track the user in an object. This is a situation that I made up, but it is a situation that can illustrate some of the advantages of using objects. So this particular object contains everything it needs, in our sample scenario, everything it needs to deal with the And that's one of the nice things about compartmentalizing functionality, you can do that with objects.
The fact that they can include functions that are called methods and other types of data is really a nice feature of objects, the data that's come from earlier in the program or from a database or whatever, all we have here is a first name, a surname and then a birth date. For the birth date. I'm tracking it with a date object, I create a new date object using the data for the birth date. Then down here, we define a user. We set it to the variable user one and then let's look at how we set up this object. So first off, we have a first name and a last name.
Notice that I'm defining the value for that name for the name value pairs of these first two using variables that come from somewhere else in the program. In this case, just a few lines up, but it illustrates the idea of weekend use that data and put it into an object, the age I simply entered the number. The birth date also comes from data that was established earlier and it's a date object, then we have several methods are a part of this object. For example, we have a full name method, what it does is it returns the first name concatenated with the last name. Now notice what we've done here. We have not talked about the keyword this up to this point.
So I'm introducing it at this in this movie. This within an object refers to that object. So this is referring back to the object we are creating right here. So by referring back to the object, I can then get the first name property of that object using this dot first name. This dot last name, and it concatenates those two together and returns the value. increment age is simply a function that increments the age by one.
And so we do this dot age. And then we do the increment operator. And it will change the value of this property up here. Login check, I made this method as something that might happen. Whenever the user logs into this site. It runs a login check on the user data.
And simply what we're doing here is we want to check to see if it's the users birthday because if it is the user's birthday, we want to let them know we're aware of that and wish them happy birthday. So what we do inside of this method is we first declare variable and set it equal to a new date object and so we get the current date. And then we check the birthday which we've stored the month of that birthday to see if it's equal to The month of the new data object, and we use our logical and we check the date, the day of the month and check to see if it's equal to the day of the month of today's date. And if that results in true meaning both the month and the day of the month are equal, then we run a another method.
And we call that method using this because it's a method of this same object. And the name of that method is birthday. We use the parentheses at the end. So to execute the code, basically what we do is we want to wish them a happy birthday. I'm just logging it to the console, but we could do something different within our site to wish them a happy birthday. And then I also called increment age method that is a part of this object.
So what I hope you see from this simple example is what's possible with objects how it allows you to put data add functionality together, that belong together. It can help you carve, compartmentalize things within your program. That's one of the advantages of objects, not the only. But that's one and so I wanted to illustrate that. So let's see how this works. Let's go ahead and I'm going to add one more line here.
And I'm just going to have it run the login chat. Now it just so happens that I set up the birthday. So that it is today's date. The login check will act actually do something. And sometimes that's how you can test your your programming is you have to enter dummy data in order to test to make sure things are working. That's exactly what I'm doing here.
I set it up so that it would run you know, save that let's go ahead and copy the file path so we can pull up this page. And then I'm going to open the console. See what happened? Sure enough, it did print to the console Happy birthday. But what about the age? Did it increment the age?
How can I tell that? Well, something we haven't done to this point in the console yet is check to see stuff that was executed in HTML page, which we opened the console from. we've typed stuff into the console, and then we've been able to see it. But you can also use the console to check JavaScript that was executed from the HTML page, for example, user one exists, that object exists in the console, because I opened the console from the HTML page, which had the JavaScript that established user one as an object. So I can do user one dot age. And sure enough, it's now 41.
Instead of So I did increment the age. Another example of this is I can console dot log, user one dot full name, that method concatenated, the first name to the last name, and returned it. And so by logging it out, I can log the value to the console. I can also simply display the object and see what's been established in their age, birthdate and several functions. First Name, Last Name, you can see those. And so this example should have helped cement some of those ideas from user defined objects, but we also introduced this keyword.
In the next movie, I want to delve into that a little more detail give you a little more information about this.