"Node.js Basics 2017" was retired on September 1, 2022. You are now viewing the recommended replacement.
Heads up! To view this whole video, sign in with your Courses account or enroll in your free 7-day trial. Sign In Enroll
Well done!
You have completed Object-Oriented JavaScript!
You have completed Object-Oriented JavaScript!
Preview
Learn how to declare a class and add a constructor method.
Resources
Related Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign upRelated Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign up
The goal for
this lesson is to create objects for
0:00
each of my pets that
aren't object literals.
0:02
To do this,
we're going to write a class, and
0:05
then create an object of that class
type for each of the animals.
0:07
Hopefully that doesn't sound too hard or
complicated, but if it does,
0:11
stay with me, you can and will get this
stuff, even if it's hard at first.
0:14
You can always rewind,
watch these videos again, and
0:19
you can even slow me down
if I'm talking too fast.
0:21
There's a workspace attached to this
video that you can code along with.
0:25
Take a moment to go ahead and
open that up.
0:28
If you'd rather use your own text editor,
you can download the project files and
0:31
follow along that way.
0:34
Okay, you ready?
0:36
Open up the pets.js file.
0:38
Inside you'll see the four object
literals from the previous video.
0:40
Like we saw in the last video,
0:43
each of these object literal has the same
properties, animal, age, and breed.
0:45
They also have the same method, bark.
0:50
Take a closer look at them.
0:53
Do you notice anything
else similar between them?
0:55
Well, the value for the animal
property in each of them is dog.
0:58
Because dog is a common value among
each of these object literals,
1:04
it's a viable option for
the name or type of our class.
1:07
When we're designing and writing classes,
it's helpful to start by looking for
1:12
these types of patterns and commonalities
among the things we're trying to model.
1:15
We could also choose to create
a class called pet or even animal.
1:19
Each of these options is
more broad than the last and
1:23
they each would have slightly
different properties and methods.
1:25
As a developer, how you make these
choices is really up to you, but
1:29
it's important to keep in mind how you
plan to use the object, and what other
1:32
objects will interact with it, and how
your objects might change in the future.
1:36
So for this excercise, we want to
create a class to model my pets.
1:40
Right now, I only have dogs, but
what if one day I choose to get a cat.
1:44
It might be wise for me to keep my class
more general and write a pet class,
1:48
instead of a dog class.
1:52
This could save a lot of code
rewrite efforts later on.
1:54
Okay, I think this is
a pretty good place to start.
1:58
Let's create a new file called Pet.js.
2:01
On the first line,
write the words class Pet.
2:08
Capitalizing the first letter of a class
name in its declaration is a common
2:14
convention in programming.
2:18
Now you're going to follow this with
a set of open and closed curly braces.
2:19
Now what?
2:25
Well, we're going to add
a constructor method.
2:27
A constructor method goes at the top,
inside a class.
2:30
This is a special method and
2:33
it's where you outline the properties
that your class will have.
2:34
When you create an object
from this class later on,
2:37
what you're really doing is invoking
this constructor method, and
2:40
like regular methods,
you can pass in parameters.
2:43
If the class is like a blueprint,
the constructor method is like a factory
2:47
that creates objects
based on that blueprint.
2:50
Check the teacher's notes for more
information about constructor methods.
2:53
Inside your curly braces, type the word
constructor followed by the open and
2:58
closed parentheses you'd use in
a regular function declaration.
3:02
Also, like a regular function declaration,
3:06
you'll follow this with a set of open and
closed curly braces.
3:08
Technically this is all we
need to have a working class.
3:14
As you can see our constructor
method is empty and
3:17
if we were to create a pet object right
now it wouldn't be terribly interesting.
3:20
So in the next video we'll continue
to flush out our construction method.
3:24
You need to sign up for Treehouse in order to download course files.
Sign upYou need to sign up for Treehouse in order to set up Workspace
Sign up