---
id: 587d7dad367417b2b2512b77
title: Define a Constructor Function
challengeType: 1
---
## Description
Constructors are functions that create new objects. They define properties and behaviors that will belong to the new object. Think of them as a blueprint for the creation of new objects.
Here is an example of a constructor:
function Bird() {
this.name = "Albert";
this.color = "blue";
this.numLegs = 2;
}
This constructor defines a Bird object with properties name, color, and numLegs set to Albert, blue, and 2, respectively.
Constructors follow a few conventions:
Constructors are defined with a capitalized name to distinguish them from other functions that are not constructors.Constructors use the keyword this to set properties of the object they will create. Inside the constructor, this refers to the new object it will create.Constructors define properties and behaviors instead of returning a value as other functions might.
## Instructions
Create a constructor, Dog, with properties name, color, and numLegs that are set to a string, a string, and a number, respectively.
## Tests
```yml
tests:
- text: Dog should have a name property set to a string.
testString: assert(typeof (new Dog()).name === 'string', 'Dog should have a name property set to a string.');
- text: Dog should have a color property set to a string.
testString: assert(typeof (new Dog()).color === 'string', 'Dog should have a color property set to a string.');
- text: Dog should have a numLegs property set to a number.
testString: assert(typeof (new Dog()).numLegs === 'number', 'Dog should have a numLegs property set to a number.');
```
## Challenge Seed
## Solution
```js
function Dog (name, color, numLegs) {
this.name = 'name';
this.color = 'color';
this.numLegs = 4;
}
```